of: Move definition of of_find_next_cache_node into common code.
Since the definition of_find_next_cache_node is architecture independent, the existing definition in powerpc can be moved to driver/of/base.c Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Grant Likely <grant.likely@linaro.org> Cc: Rob Herring <rob.herring@calxeda.com> Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Родитель
afaf539854
Коммит
a3e31b4588
|
@ -44,9 +44,6 @@ void of_parse_dma_window(struct device_node *dn, const __be32 *dma_window,
|
|||
|
||||
extern void kdump_move_device_tree(void);
|
||||
|
||||
/* cache lookup */
|
||||
struct device_node *of_find_next_cache_node(struct device_node *np);
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
extern int of_node_to_nid(struct device_node *device);
|
||||
#else
|
||||
|
|
|
@ -760,37 +760,6 @@ void __init early_init_devtree(void *params)
|
|||
*
|
||||
*******/
|
||||
|
||||
/**
|
||||
* of_find_next_cache_node - Find a node's subsidiary cache
|
||||
* @np: node of type "cpu" or "cache"
|
||||
*
|
||||
* Returns a node pointer with refcount incremented, use
|
||||
* of_node_put() on it when done. Caller should hold a reference
|
||||
* to np.
|
||||
*/
|
||||
struct device_node *of_find_next_cache_node(struct device_node *np)
|
||||
{
|
||||
struct device_node *child;
|
||||
const phandle *handle;
|
||||
|
||||
handle = of_get_property(np, "l2-cache", NULL);
|
||||
if (!handle)
|
||||
handle = of_get_property(np, "next-level-cache", NULL);
|
||||
|
||||
if (handle)
|
||||
return of_find_node_by_phandle(be32_to_cpup(handle));
|
||||
|
||||
/* OF on pmac has nodes instead of properties named "l2-cache"
|
||||
* beneath CPU nodes.
|
||||
*/
|
||||
if (!strcmp(np->type, "cpu"))
|
||||
for_each_child_of_node(np, child)
|
||||
if (!strcmp(child->type, "cache"))
|
||||
return child;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* of_get_ibm_chip_id - Returns the IBM "chip-id" of a device
|
||||
* @np: device node of the device
|
||||
|
|
|
@ -1884,3 +1884,34 @@ int of_device_is_stdout_path(struct device_node *dn)
|
|||
return of_stdout == dn;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(of_device_is_stdout_path);
|
||||
|
||||
/**
|
||||
* of_find_next_cache_node - Find a node's subsidiary cache
|
||||
* @np: node of type "cpu" or "cache"
|
||||
*
|
||||
* Returns a node pointer with refcount incremented, use
|
||||
* of_node_put() on it when done. Caller should hold a reference
|
||||
* to np.
|
||||
*/
|
||||
struct device_node *of_find_next_cache_node(const struct device_node *np)
|
||||
{
|
||||
struct device_node *child;
|
||||
const phandle *handle;
|
||||
|
||||
handle = of_get_property(np, "l2-cache", NULL);
|
||||
if (!handle)
|
||||
handle = of_get_property(np, "next-level-cache", NULL);
|
||||
|
||||
if (handle)
|
||||
return of_find_node_by_phandle(be32_to_cpup(handle));
|
||||
|
||||
/* OF on pmac has nodes instead of properties named "l2-cache"
|
||||
* beneath CPU nodes.
|
||||
*/
|
||||
if (!strcmp(np->type, "cpu"))
|
||||
for_each_child_of_node(np, child)
|
||||
if (!strcmp(child->type, "cache"))
|
||||
return child;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -226,6 +226,8 @@ static inline int of_get_child_count(const struct device_node *np)
|
|||
return num;
|
||||
}
|
||||
|
||||
/* cache lookup */
|
||||
extern struct device_node *of_find_next_cache_node(const struct device_node *);
|
||||
extern struct device_node *of_find_node_with_property(
|
||||
struct device_node *from, const char *prop_name);
|
||||
#define for_each_node_with_property(dn, prop_name) \
|
||||
|
|
Загрузка…
Ссылка в новой задаче