summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Poirier2015-03-30 22:13:34 +0200
committerGreg Kroah-Hartman2015-04-03 16:17:03 +0200
commit8c02a5ba34a1fae6def8cb5a39bb582f09bca49c (patch)
treec498d4dd691794fe9d314f67695c8bfa03b10e6a
parentmcb: request_mem_region() returns NULL on error (diff)
downloadkernel-qcow2-linux-8c02a5ba34a1fae6def8cb5a39bb582f09bca49c.tar.gz
kernel-qcow2-linux-8c02a5ba34a1fae6def8cb5a39bb582f09bca49c.tar.xz
kernel-qcow2-linux-8c02a5ba34a1fae6def8cb5a39bb582f09bca49c.zip
coresight: making cpu index lookup arm64 compliant
Function "get_logical_index()" is not available on arm64. Instead of adding the function simply using "of_get_cpu_node()" and comparing the return value with cpu handles yields the same result. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/coresight/of_coresight.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/coresight/of_coresight.c b/drivers/coresight/of_coresight.c
index c3efa418a86d..f3cc8e97a0f8 100644
--- a/drivers/coresight/of_coresight.c
+++ b/drivers/coresight/of_coresight.c
@@ -22,6 +22,7 @@
#include <linux/platform_device.h>
#include <linux/amba/bus.h>
#include <linux/coresight.h>
+#include <linux/cpumask.h>
#include <asm/smp_plat.h>
@@ -113,7 +114,7 @@ static int of_coresight_alloc_memory(struct device *dev,
struct coresight_platform_data *of_get_coresight_platform_data(
struct device *dev, struct device_node *node)
{
- int i = 0, ret = 0;
+ int i = 0, ret = 0, cpu;
struct coresight_platform_data *pdata;
struct of_endpoint endpoint, rendpoint;
struct device *rdev;
@@ -187,17 +188,10 @@ struct coresight_platform_data *of_get_coresight_platform_data(
/* Affinity defaults to CPU0 */
pdata->cpu = 0;
dn = of_parse_phandle(node, "cpu", 0);
- if (dn) {
- const u32 *cell;
- int len, index;
- u64 hwid;
-
- cell = of_get_property(dn, "reg", &len);
- if (cell) {
- hwid = of_read_number(cell, of_n_addr_cells(dn));
- index = get_logical_index(hwid);
- if (index != -EINVAL)
- pdata->cpu = index;
+ for (cpu = 0; dn && cpu < nr_cpu_ids; cpu++) {
+ if (dn == of_get_cpu_node(cpu, NULL)) {
+ pdata->cpu = cpu;
+ break;
}
}