On Mon, Apr 15, 2019 at 05:04:03PM +0100, Suzuki K Poulose wrote: > The CoreSight components ETM and CPU-Debug are always associated > with CPUs. Replace the of_coresight_get_cpu() with a platform > agnostic helper, in preparation to add ACPI support. > > Cc: Mathieu Poirier <mathieu.poir...@linaro.org> > Signed-off-by: Suzuki K Poulose <suzuki.poul...@arm.com> > --- > drivers/hwtracing/coresight/coresight-cpu-debug.c | 3 +-- > drivers/hwtracing/coresight/coresight-platform.c | 18 +++++++++++++----- > include/linux/coresight.h | 7 +------ > 3 files changed, 15 insertions(+), 13 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight-cpu-debug.c > b/drivers/hwtracing/coresight/coresight-cpu-debug.c > index e8819d7..07a1367 100644 > --- a/drivers/hwtracing/coresight/coresight-cpu-debug.c > +++ b/drivers/hwtracing/coresight/coresight-cpu-debug.c > @@ -572,14 +572,13 @@ static int debug_probe(struct amba_device *adev, const > struct amba_id *id) > struct device *dev = &adev->dev; > struct debug_drvdata *drvdata; > struct resource *res = &adev->res; > - struct device_node *np = adev->dev.of_node; > int ret; > > drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); > if (!drvdata) > return -ENOMEM; > > - drvdata->cpu = np ? of_coresight_get_cpu(np) : 0; > + drvdata->cpu = coresight_get_cpu(dev); > if (per_cpu(debug_drvdata, drvdata->cpu)) { > dev_err(dev, "CPU%d drvdata has already been initialized\n", > drvdata->cpu); > diff --git a/drivers/hwtracing/coresight/coresight-platform.c > b/drivers/hwtracing/coresight/coresight-platform.c > index 25a1838..8a86ba3 100644 > --- a/drivers/hwtracing/coresight/coresight-platform.c > +++ b/drivers/hwtracing/coresight/coresight-platform.c > @@ -151,12 +151,14 @@ static void of_coresight_get_ports(const struct > device_node *node, > } > } > > -int of_coresight_get_cpu(const struct device_node *node) > +static int of_coresight_get_cpu(struct device *dev) > { > int cpu; > struct device_node *dn; > > - dn = of_parse_phandle(node, "cpu", 0); > + if (!dev->of_node) > + return 0; > + dn = of_parse_phandle(dev->of_node, "cpu", 0); > /* Affinity defaults to CPU0 */ > if (!dn) > return 0; > @@ -166,7 +168,6 @@ int of_coresight_get_cpu(const struct device_node *node) > /* Affinity to CPU0 if no cpu nodes are found */ > return (cpu < 0) ? 0 : cpu; > } > -EXPORT_SYMBOL_GPL(of_coresight_get_cpu); > > /* > * of_coresight_parse_endpoint : Parse the given output endpoint @ep > @@ -241,8 +242,6 @@ of_get_coresight_platform_data(struct device *dev, > bool legacy_binding = false; > struct device_node *node = dev->of_node; > > - pdata->cpu = of_coresight_get_cpu(node); > - > /* Get the number of input and output port for this component */ > of_coresight_get_ports(node, &pdata->nr_inport, &pdata->nr_outport); > > @@ -294,6 +293,14 @@ of_get_coresight_platform_data(struct device *dev, > } > #endif > > +int coresight_get_cpu(struct device *dev) > +{ > + if (is_of_node(dev->fwnode)) > + return of_coresight_get_cpu(dev); > + return 0; > +} > +EXPORT_SYMBOL_GPL(coresight_get_cpu); > + > struct coresight_platform_data * > coresight_get_platform_data(struct device *dev) > { > @@ -309,6 +316,7 @@ coresight_get_platform_data(struct device *dev) > > /* Use device name as sysfs handle */ > pdata->name = dev_name(dev); > + pdata->cpu = coresight_get_cpu(dev); > > if (is_of_node(fwnode)) > return of_get_coresight_platform_data(dev, pdata); > diff --git a/include/linux/coresight.h b/include/linux/coresight.h > index 5b29255..a48cd9b 100644 > --- a/include/linux/coresight.h > +++ b/include/linux/coresight.h > @@ -291,12 +291,7 @@ static inline void > coresight_disclaim_device_unlocked(void __iomem *base) {} > > #endif > > -#ifdef CONFIG_OF > -extern int of_coresight_get_cpu(const struct device_node *node); > -#else > -static inline int of_coresight_get_cpu(const struct device_node *node) > -{ return 0; } > -#endif > +extern int coresight_get_cpu(struct device *dev); > > struct coresight_platform_data *coresight_get_platform_data(struct device > *dev);
For patches 12, 13 and 15-20: Reviewed-by: Mathieu Poirier <mathieu.poir...@linaro.org> > > -- > 2.7.4 >