aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/base.c
diff options
context:
space:
mode:
authorSudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>2013-09-18 06:53:05 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-10-31 01:19:19 -0400
commita3e31b4588443f37d82195096c6b30dff1c152c2 (patch)
tree8a5dfd747a2d55e7106f2faeeb97d4e29fef6e15 /drivers/of/base.c
parentafaf53985431bb295e4b723b08a55d0540cf8070 (diff)
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>
Diffstat (limited to 'drivers/of/base.c')
-rw-r--r--drivers/of/base.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 865d3f66c86b..b2cee3db5ceb 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1884,3 +1884,34 @@ int of_device_is_stdout_path(struct device_node *dn)
1884 return of_stdout == dn; 1884 return of_stdout == dn;
1885} 1885}
1886EXPORT_SYMBOL_GPL(of_device_is_stdout_path); 1886EXPORT_SYMBOL_GPL(of_device_is_stdout_path);
1887
1888/**
1889 * of_find_next_cache_node - Find a node's subsidiary cache
1890 * @np: node of type "cpu" or "cache"
1891 *
1892 * Returns a node pointer with refcount incremented, use
1893 * of_node_put() on it when done. Caller should hold a reference
1894 * to np.
1895 */
1896struct device_node *of_find_next_cache_node(const struct device_node *np)
1897{
1898 struct device_node *child;
1899 const phandle *handle;
1900
1901 handle = of_get_property(np, "l2-cache", NULL);
1902 if (!handle)
1903 handle = of_get_property(np, "next-level-cache", NULL);
1904
1905 if (handle)
1906 return of_find_node_by_phandle(be32_to_cpup(handle));
1907
1908 /* OF on pmac has nodes instead of properties named "l2-cache"
1909 * beneath CPU nodes.
1910 */
1911 if (!strcmp(np->type, "cpu"))
1912 for_each_child_of_node(np, child)
1913 if (!strcmp(child->type, "cache"))
1914 return child;
1915
1916 return NULL;
1917}