[PATCH V2 2/5] coresight: etm4x: Drop iomem 'base' argument from etm4_probe()

James Clark james.clark at arm.com
Tue Apr 4 08:22:30 PDT 2023



On 27/03/2023 06:05, Anshuman Khandual wrote:
> 'struct etm4_drvdata' itself can carry the base address before etm4_probe()
> gets called. Just drop that redundant argument from etm4_probe().
> 
> Cc: Mathieu Poirier <mathieu.poirier at linaro.org>
> Cc: Suzuki K Poulose <suzuki.poulose at arm.com>
> Cc: Mike Leach <mike.leach at linaro.org>
> Cc: Leo Yan <leo.yan at linaro.org>
> Cc: coresight at lists.linaro.org
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual at arm.com>
> ---
>  drivers/hwtracing/coresight/coresight-etm4x-core.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> index 10119c223fbe..5d77571a8df9 100644
> --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
> +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> @@ -2048,7 +2048,7 @@ static int etm4_add_coresight_dev(struct etm4_init_arg *init_arg)
>  	return 0;
>  }
>  
> -static int etm4_probe(struct device *dev, void __iomem *base, u32 etm_pid)
> +static int etm4_probe(struct device *dev, u32 etm_pid)
>  {
>  	struct etmv4_drvdata *drvdata = dev_get_drvdata(dev);
>  	struct csdev_access access = { 0 };
> @@ -2069,8 +2069,6 @@ static int etm4_probe(struct device *dev, void __iomem *base, u32 etm_pid)
>  			return -ENOMEM;
>  	}
>  
> -	drvdata->base = base;
> -
>  	spin_lock_init(&drvdata->spinlock);
>  
>  	drvdata->cpu = coresight_get_cpu(dev);
> @@ -2124,8 +2122,9 @@ static int etm4_probe_amba(struct amba_device *adev, const struct amba_id *id)
>  	if (!drvdata)
>  		return -ENOMEM;
>  
> +	drvdata->base = base;
>  	dev_set_drvdata(dev, drvdata);
> -	ret = etm4_probe(dev, base, id->id);
> +	ret = etm4_probe(dev, id->id);
>  	if (!ret)
>  		pm_runtime_put(&adev->dev);
>  
> @@ -2141,6 +2140,7 @@ static int etm4_probe_platform_dev(struct platform_device *pdev)
>  	if (!drvdata)
>  		return -ENOMEM;
>  
> +	drvdata->base = NULL;

Very minor point, drvdata is zero alloced so it doesn't make sense to
zero this field but not the others. It's harmless, but it might imply
something and confuse someone.

Either way:
Reviewed-by: James Clark <james.clark at arm.com>

>  	dev_set_drvdata(&pdev->dev, drvdata);
>  	pm_runtime_get_noresume(&pdev->dev);
>  	pm_runtime_set_active(&pdev->dev);
> @@ -2151,7 +2151,7 @@ static int etm4_probe_platform_dev(struct platform_device *pdev)
>  	 * HW by reading appropriate registers on the HW
>  	 * and thus we could skip the PID.
>  	 */
> -	ret = etm4_probe(&pdev->dev, NULL, 0);
> +	ret = etm4_probe(&pdev->dev, 0);
>  
>  	pm_runtime_put(&pdev->dev);
>  	return ret;



More information about the linux-arm-kernel mailing list