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
> 

Reply via email to