It is useful to have helper function just to get the number of cache levels for a given logical cpu. This patch adds the support for the same. It will be used on ARM64 platform where the device tree provides the information for the additional non-architected/transparent/external last level caches that are not integrated with the processors. Cc: Rob Herring <robh+dt@xxxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx> --- drivers/of/base.c | 22 ++++++++++++++++++++++ include/linux/of.h | 1 + 2 files changed, 23 insertions(+) diff --git a/drivers/of/base.c b/drivers/of/base.c index d4bea3c797d6..f7a2b47b3c77 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2268,6 +2268,28 @@ struct device_node *of_find_next_cache_node(const struct device_node *np) } /** + * of_count_cache_levels - Find the total number of cache levels for the + * given logical cpu + * + * @cpu: cpu number(logical index) for which cache levels is being counted + * + * Returns the total number of cache levels for the given logical cpu + */ +int of_count_cache_levels(unsigned int cpu) +{ + int level = 0; + struct device_node *np = of_cpu_device_node_get(cpu); + + while (np) { + level++; + of_node_put(np); + np = of_find_next_cache_node(np); + } + + return level; +} + +/** * of_graph_parse_endpoint() - parse common endpoint node properties * @node: pointer to endpoint device_node * @endpoint: pointer to the OF endpoint data structure diff --git a/include/linux/of.h b/include/linux/of.h index d72f01009297..c8597ae71ff3 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -280,6 +280,7 @@ extern struct device_node *of_get_child_by_name(const struct device_node *node, /* cache lookup */ extern struct device_node *of_find_next_cache_node(const struct device_node *); +extern int of_count_cache_levels(unsigned int cpu); extern struct device_node *of_find_node_with_property( struct device_node *from, const char *prop_name); -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html