[PATCH 37/53] drm/rcar-du: Convert to platform remove callback returning void
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon May 8 02:42:37 UTC 2023
Hi Uwe,
Thank you for the patch.
On Sun, May 07, 2023 at 06:26:00PM +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 rcar-du drm driver 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/rcar-du/rcar_cmm.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_lvds.c | 6 ++----
> drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c | 6 ++----
> drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c | 6 ++----
> 6 files changed, 12 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/rcar-du/rcar_cmm.c b/drivers/gpu/drm/rcar-du/rcar_cmm.c
> index e2a67dda4658..26a2f5ad8ee5 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_cmm.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_cmm.c
> @@ -187,11 +187,9 @@ static int rcar_cmm_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int rcar_cmm_remove(struct platform_device *pdev)
> +static void rcar_cmm_remove(struct platform_device *pdev)
> {
> pm_runtime_disable(&pdev->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id rcar_cmm_of_table[] = {
> @@ -203,7 +201,7 @@ MODULE_DEVICE_TABLE(of, rcar_cmm_of_table);
>
> static struct platform_driver rcar_cmm_platform_driver = {
> .probe = rcar_cmm_probe,
> - .remove = rcar_cmm_remove,
> + .remove_new = rcar_cmm_remove,
> .driver = {
> .name = "rcar-cmm",
> .of_match_table = rcar_cmm_of_table,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index b9a94c5260e9..4a6bf50b5c49 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -685,7 +685,7 @@ static DEFINE_SIMPLE_DEV_PM_OPS(rcar_du_pm_ops,
> * Platform driver
> */
>
> -static int rcar_du_remove(struct platform_device *pdev)
> +static void rcar_du_remove(struct platform_device *pdev)
> {
> struct rcar_du_device *rcdu = platform_get_drvdata(pdev);
> struct drm_device *ddev = &rcdu->ddev;
> @@ -694,8 +694,6 @@ static int rcar_du_remove(struct platform_device *pdev)
> drm_atomic_helper_shutdown(ddev);
>
> drm_kms_helper_poll_fini(ddev);
> -
> - return 0;
> }
>
> static void rcar_du_shutdown(struct platform_device *pdev)
> @@ -776,7 +774,7 @@ static int rcar_du_probe(struct platform_device *pdev)
>
> static struct platform_driver rcar_du_platform_driver = {
> .probe = rcar_du_probe,
> - .remove = rcar_du_remove,
> + .remove_new = rcar_du_remove,
> .shutdown = rcar_du_shutdown,
> .driver = {
> .name = "rcar-du",
> diff --git a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
> index 18ed14911b98..119d69d20b23 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_dw_hdmi.c
> @@ -93,13 +93,11 @@ static int rcar_dw_hdmi_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int rcar_dw_hdmi_remove(struct platform_device *pdev)
> +static void rcar_dw_hdmi_remove(struct platform_device *pdev)
> {
> struct dw_hdmi *hdmi = platform_get_drvdata(pdev);
>
> dw_hdmi_remove(hdmi);
> -
> - return 0;
> }
>
> static const struct of_device_id rcar_dw_hdmi_of_table[] = {
> @@ -110,7 +108,7 @@ MODULE_DEVICE_TABLE(of, rcar_dw_hdmi_of_table);
>
> static struct platform_driver rcar_dw_hdmi_platform_driver = {
> .probe = rcar_dw_hdmi_probe,
> - .remove = rcar_dw_hdmi_remove,
> + .remove_new = rcar_dw_hdmi_remove,
> .driver = {
> .name = "rcar-dw-hdmi",
> .of_match_table = rcar_dw_hdmi_of_table,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> index 260ea5d8624e..86d2ac204568 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
> @@ -890,15 +890,13 @@ static int rcar_lvds_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int rcar_lvds_remove(struct platform_device *pdev)
> +static void rcar_lvds_remove(struct platform_device *pdev)
> {
> struct rcar_lvds *lvds = platform_get_drvdata(pdev);
>
> drm_bridge_remove(&lvds->bridge);
>
> pm_runtime_disable(&pdev->dev);
> -
> - return 0;
> }
>
> static const struct rcar_lvds_device_info rcar_lvds_gen2_info = {
> @@ -994,7 +992,7 @@ static const struct dev_pm_ops rcar_lvds_pm_ops = {
>
> static struct platform_driver rcar_lvds_platform_driver = {
> .probe = rcar_lvds_probe,
> - .remove = rcar_lvds_remove,
> + .remove_new = rcar_lvds_remove,
> .driver = {
> .name = "rcar-lvds",
> .pm = &rcar_lvds_pm_ops,
> diff --git a/drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c b/drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c
> index e10e4d4b89a2..305123a671c6 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_mipi_dsi.c
> @@ -1044,13 +1044,11 @@ static int rcar_mipi_dsi_probe(struct platform_device *pdev)
> return 0;
> }
>
> -static int rcar_mipi_dsi_remove(struct platform_device *pdev)
> +static void rcar_mipi_dsi_remove(struct platform_device *pdev)
> {
> struct rcar_mipi_dsi *dsi = platform_get_drvdata(pdev);
>
> mipi_dsi_host_unregister(&dsi->host);
> -
> - return 0;
> }
>
> static const struct rcar_mipi_dsi_device_info v3u_data = {
> @@ -1093,7 +1091,7 @@ MODULE_DEVICE_TABLE(of, rcar_mipi_dsi_of_table);
>
> static struct platform_driver rcar_mipi_dsi_platform_driver = {
> .probe = rcar_mipi_dsi_probe,
> - .remove = rcar_mipi_dsi_remove,
> + .remove_new = rcar_mipi_dsi_remove,
> .driver = {
> .name = "rcar-mipi-dsi",
> .of_match_table = rcar_mipi_dsi_of_table,
> diff --git a/drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c b/drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c
> index aa95b85a2964..a97fc4c5d1c8 100644
> --- a/drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c
> +++ b/drivers/gpu/drm/rcar-du/rzg2l_mipi_dsi.c
> @@ -782,14 +782,12 @@ static int rzg2l_mipi_dsi_probe(struct platform_device *pdev)
> return ret;
> }
>
> -static int rzg2l_mipi_dsi_remove(struct platform_device *pdev)
> +static void rzg2l_mipi_dsi_remove(struct platform_device *pdev)
> {
> struct rzg2l_mipi_dsi *dsi = platform_get_drvdata(pdev);
>
> mipi_dsi_host_unregister(&dsi->host);
> pm_runtime_disable(&pdev->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id rzg2l_mipi_dsi_of_table[] = {
> @@ -801,7 +799,7 @@ MODULE_DEVICE_TABLE(of, rzg2l_mipi_dsi_of_table);
>
> static struct platform_driver rzg2l_mipi_dsi_platform_driver = {
> .probe = rzg2l_mipi_dsi_probe,
> - .remove = rzg2l_mipi_dsi_remove,
> + .remove_new = rzg2l_mipi_dsi_remove,
> .driver = {
> .name = "rzg2l-mipi-dsi",
> .pm = &rzg2l_mipi_pm_ops,
> --
> 2.39.2
>
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list