[PATCH 10/53] drm/imx/imx8*: Convert to platform remove callback returning void

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon May 8 02:43:53 UTC 2023


Hi Uwe,

Thank you for the patch.

On Sun, May 07, 2023 at 06:25:33PM +0200, Uwe Kleine-König wrote:
> The .remove() callback for a platform driver returns an int which makes
> many driver authors wrongly assume it's possible to do error handling by
> returning an error code. However the value returned is (mostly) ignored
> and this typically results in resource leaks. To improve here there is a
> quest to make the remove callback return void. In the first step of this
> quest all drivers are converted to .remove_new() which already returns
> void.
> 
> Trivially convert the imx8 drm drivers from always returning zero in the
> remove callback to the void returning variant.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c         | 6 ++----
>  drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c        | 6 ++----
>  drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c | 6 ++----
>  drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c     | 6 ++----
>  drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c        | 6 ++----
>  5 files changed, 10 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
> index 178af8d2d80b..386032a02599 100644
> --- a/drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
> +++ b/drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c
> @@ -532,7 +532,7 @@ static int imx8qm_ldb_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int imx8qm_ldb_remove(struct platform_device *pdev)
> +static void imx8qm_ldb_remove(struct platform_device *pdev)
>  {
>  	struct imx8qm_ldb *imx8qm_ldb = platform_get_drvdata(pdev);
>  	struct ldb *ldb = &imx8qm_ldb->base;
> @@ -540,8 +540,6 @@ static int imx8qm_ldb_remove(struct platform_device *pdev)
>  	ldb_remove_bridge_helper(ldb);
>  
>  	pm_runtime_disable(&pdev->dev);
> -
> -	return 0;
>  }
>  
>  static int __maybe_unused imx8qm_ldb_runtime_suspend(struct device *dev)
> @@ -573,7 +571,7 @@ MODULE_DEVICE_TABLE(of, imx8qm_ldb_dt_ids);
>  
>  static struct platform_driver imx8qm_ldb_driver = {
>  	.probe	= imx8qm_ldb_probe,
> -	.remove = imx8qm_ldb_remove,
> +	.remove_new = imx8qm_ldb_remove,
>  	.driver	= {
>  		.pm = &imx8qm_ldb_pm_ops,
>  		.name = DRIVER_NAME,
> diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c
> index 63948d5d20fd..c806576b1e22 100644
> --- a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c
> +++ b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c
> @@ -667,7 +667,7 @@ static int imx8qxp_ldb_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int imx8qxp_ldb_remove(struct platform_device *pdev)
> +static void imx8qxp_ldb_remove(struct platform_device *pdev)
>  {
>  	struct imx8qxp_ldb *imx8qxp_ldb = platform_get_drvdata(pdev);
>  	struct ldb *ldb = &imx8qxp_ldb->base;
> @@ -675,8 +675,6 @@ static int imx8qxp_ldb_remove(struct platform_device *pdev)
>  	ldb_remove_bridge_helper(ldb);
>  
>  	pm_runtime_disable(&pdev->dev);
> -
> -	return 0;
>  }
>  
>  static int __maybe_unused imx8qxp_ldb_runtime_suspend(struct device *dev)
> @@ -708,7 +706,7 @@ MODULE_DEVICE_TABLE(of, imx8qxp_ldb_dt_ids);
>  
>  static struct platform_driver imx8qxp_ldb_driver = {
>  	.probe	= imx8qxp_ldb_probe,
> -	.remove = imx8qxp_ldb_remove,
> +	.remove_new = imx8qxp_ldb_remove,
>  	.driver	= {
>  		.pm = &imx8qxp_ldb_pm_ops,
>  		.name = DRIVER_NAME,
> diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
> index 503bd8db8afe..d0868a6ac6c9 100644
> --- a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
> +++ b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c
> @@ -357,7 +357,7 @@ static int imx8qxp_pc_bridge_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int imx8qxp_pc_bridge_remove(struct platform_device *pdev)
> +static void imx8qxp_pc_bridge_remove(struct platform_device *pdev)
>  {
>  	struct imx8qxp_pc *pc = platform_get_drvdata(pdev);
>  	struct imx8qxp_pc_channel *ch;
> @@ -374,8 +374,6 @@ static int imx8qxp_pc_bridge_remove(struct platform_device *pdev)
>  	}
>  
>  	pm_runtime_disable(&pdev->dev);
> -
> -	return 0;
>  }
>  
>  static int __maybe_unused imx8qxp_pc_runtime_suspend(struct device *dev)
> @@ -435,7 +433,7 @@ MODULE_DEVICE_TABLE(of, imx8qxp_pc_dt_ids);
>  
>  static struct platform_driver imx8qxp_pc_bridge_driver = {
>  	.probe	= imx8qxp_pc_bridge_probe,
> -	.remove = imx8qxp_pc_bridge_remove,
> +	.remove_new = imx8qxp_pc_bridge_remove,
>  	.driver	= {
>  		.pm = &imx8qxp_pc_pm_ops,
>  		.name = DRIVER_NAME,
> diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
> index 9e5f2b4dc2e5..25dc82a44ef4 100644
> --- a/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
> +++ b/drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c
> @@ -398,13 +398,11 @@ static int imx8qxp_pixel_link_bridge_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int imx8qxp_pixel_link_bridge_remove(struct platform_device *pdev)
> +static void imx8qxp_pixel_link_bridge_remove(struct platform_device *pdev)
>  {
>  	struct imx8qxp_pixel_link *pl = platform_get_drvdata(pdev);
>  
>  	drm_bridge_remove(&pl->bridge);
> -
> -	return 0;
>  }
>  
>  static const struct of_device_id imx8qxp_pixel_link_dt_ids[] = {
> @@ -416,7 +414,7 @@ MODULE_DEVICE_TABLE(of, imx8qxp_pixel_link_dt_ids);
>  
>  static struct platform_driver imx8qxp_pixel_link_bridge_driver = {
>  	.probe	= imx8qxp_pixel_link_bridge_probe,
> -	.remove = imx8qxp_pixel_link_bridge_remove,
> +	.remove_new = imx8qxp_pixel_link_bridge_remove,
>  	.driver	= {
>  		.of_match_table = imx8qxp_pixel_link_dt_ids,
>  		.name = DRIVER_NAME,
> diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c b/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
> index d0fec82f0cf8..4a886cb808ca 100644
> --- a/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
> +++ b/drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c
> @@ -455,15 +455,13 @@ static int imx8qxp_pxl2dpi_bridge_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int imx8qxp_pxl2dpi_bridge_remove(struct platform_device *pdev)
> +static void imx8qxp_pxl2dpi_bridge_remove(struct platform_device *pdev)
>  {
>  	struct imx8qxp_pxl2dpi *p2d = platform_get_drvdata(pdev);
>  
>  	drm_bridge_remove(&p2d->bridge);
>  
>  	pm_runtime_disable(&pdev->dev);
> -
> -	return 0;
>  }
>  
>  static const struct of_device_id imx8qxp_pxl2dpi_dt_ids[] = {
> @@ -474,7 +472,7 @@ MODULE_DEVICE_TABLE(of, imx8qxp_pxl2dpi_dt_ids);
>  
>  static struct platform_driver imx8qxp_pxl2dpi_bridge_driver = {
>  	.probe	= imx8qxp_pxl2dpi_bridge_probe,
> -	.remove = imx8qxp_pxl2dpi_bridge_remove,
> +	.remove_new = imx8qxp_pxl2dpi_bridge_remove,
>  	.driver	= {
>  		.of_match_table = imx8qxp_pxl2dpi_dt_ids,
>  		.name = DRIVER_NAME,
> -- 
> 2.39.2
> 

-- 
Regards,

Laurent Pinchart


More information about the dri-devel mailing list