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@xxxxxxxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > 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