[PATCH] soc: ti: smartreflex: Simplify getting the opam_sr pointer

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Wed Apr 12 07:25:39 PDT 2023


Hello,

[Cc += Tony Lindgren + Arnd Bergmann who did care about the last change
to this driver]

On Wed, Oct 12, 2022 at 04:00:32PM +0200, Uwe Kleine-König wrote:
> The probe function stores the sr_info pointer using
> platform_set_drvdata(). Use the corresponding platform_get_drvdata() to
> retrieve that pointer in the remove and shutdown functions.
> 
> This simplifies these functions and makes error handling unnecessary.
> This is a good thing as at least for .remove() returning an error code
> doesn't have the desired effect.
> 
> This is a preparation for making platform remove callbacks return void.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>

This patch still applies to v6.3-rc1, but I didn't get any feedback
since 6 months now. I need this change to eventually make
platform_driver's remove callback return void.

Best regards
Uwe

[Keeping a full quote below for Tony and Arnd]

> ---
>  drivers/soc/ti/smartreflex.c | 30 ++----------------------------
>  1 file changed, 2 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/soc/ti/smartreflex.c b/drivers/soc/ti/smartreflex.c
> index ad2bb72e640c..1d0b50feae44 100644
> --- a/drivers/soc/ti/smartreflex.c
> +++ b/drivers/soc/ti/smartreflex.c
> @@ -940,21 +940,8 @@ static int omap_sr_probe(struct platform_device *pdev)
>  
>  static int omap_sr_remove(struct platform_device *pdev)
>  {
> -	struct omap_sr_data *pdata = pdev->dev.platform_data;
>  	struct device *dev = &pdev->dev;
> -	struct omap_sr *sr_info;
> -
> -	if (!pdata) {
> -		dev_err(&pdev->dev, "%s: platform data missing\n", __func__);
> -		return -EINVAL;
> -	}
> -
> -	sr_info = _sr_lookup(pdata->voltdm);
> -	if (IS_ERR(sr_info)) {
> -		dev_warn(&pdev->dev, "%s: omap_sr struct not found\n",
> -			__func__);
> -		return PTR_ERR(sr_info);
> -	}
> +	struct omap_sr *sr_info = platform_get_drvdata(pdev);
>  
>  	if (sr_info->autocomp_active)
>  		sr_stop_vddautocomp(sr_info);
> @@ -968,20 +955,7 @@ static int omap_sr_remove(struct platform_device *pdev)
>  
>  static void omap_sr_shutdown(struct platform_device *pdev)
>  {
> -	struct omap_sr_data *pdata = pdev->dev.platform_data;
> -	struct omap_sr *sr_info;
> -
> -	if (!pdata) {
> -		dev_err(&pdev->dev, "%s: platform data missing\n", __func__);
> -		return;
> -	}
> -
> -	sr_info = _sr_lookup(pdata->voltdm);
> -	if (IS_ERR(sr_info)) {
> -		dev_warn(&pdev->dev, "%s: omap_sr struct not found\n",
> -			__func__);
> -		return;
> -	}
> +	struct omap_sr *sr_info = platform_get_drvdata(pdev);
>  
>  	if (sr_info->autocomp_active)
>  		sr_stop_vddautocomp(sr_info);
> 
> base-commit: 4fe89d07dcc2804c8b562f6c7896a45643d34b2f

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20230412/23291417/attachment.sig>


More information about the linux-arm-kernel mailing list