diff options
author | Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com> | 2013-09-18 06:53:05 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-10-31 01:19:19 -0400 |
commit | a3e31b4588443f37d82195096c6b30dff1c152c2 (patch) | |
tree | 8a5dfd747a2d55e7106f2faeeb97d4e29fef6e15 /drivers/of/base.c | |
parent | afaf53985431bb295e4b723b08a55d0540cf8070 (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.c | 31 |
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 | } |
1886 | EXPORT_SYMBOL_GPL(of_device_is_stdout_path); | 1886 | EXPORT_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 | */ | ||
1896 | struct 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 | } | ||