of: Move definition of of_find_next_cache_node into common code.
authorSudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
Wed, 18 Sep 2013 10:53:05 +0000 (11:53 +0100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 31 Oct 2013 05:19:19 +0000 (16:19 +1100)
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>
arch/powerpc/include/asm/prom.h
arch/powerpc/kernel/prom.c
drivers/of/base.c
include/linux/of.h

index 7d0c7f3a7171e98ce262ed4054c38af101032043..bf09e5a065b809b033a31969f4817b66d4fd66a1 100644 (file)
@@ -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
index 09be2759c31445cd69c9026c37e3d808db87e26e..4432fd86a6d2a69dce59d935e6213eeea4c623e3 100644 (file)
@@ -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
index 865d3f66c86b2735810e1f6d4d7a219dfd9b350e..b2cee3db5ceb45ee21143bcacd85aaa2aa233a31 100644 (file)
@@ -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;
+}
index f95aee391e30fcb98eeec0f6569c0b4bc9b8ba31..c08c07e249b380544b09b63f9124d0c400f04df0 100644 (file)
@@ -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) \