2023-06-22 09:33:07

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH 16/39] drm: renesas: shmobile: Convert to use devm_request_irq()

Convert to managed IRQ handling, to simplify cleanup.

Signed-off-by: Geert Uytterhoeven <[email protected]>
---
drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c
index 50fca18282c5cb5e..ece9aedde9b662d4 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c
@@ -169,7 +169,6 @@ static int shmob_drm_remove(struct platform_device *pdev)

drm_dev_unregister(ddev);
drm_kms_helper_poll_fini(ddev);
- free_irq(sdev->irq, ddev);
drm_dev_put(ddev);

return 0;
@@ -252,8 +251,8 @@ static int shmob_drm_probe(struct platform_device *pdev)
goto err_modeset_cleanup;
sdev->irq = ret;

- ret = request_irq(sdev->irq, shmob_drm_irq, 0, ddev->driver->name,
- ddev);
+ ret = devm_request_irq(&pdev->dev, sdev->irq, shmob_drm_irq, 0,
+ ddev->driver->name, ddev);
if (ret < 0) {
dev_err(&pdev->dev, "failed to install IRQ handler\n");
goto err_modeset_cleanup;
@@ -265,14 +264,12 @@ static int shmob_drm_probe(struct platform_device *pdev)
*/
ret = drm_dev_register(ddev, 0);
if (ret < 0)
- goto err_irq_uninstall;
+ goto err_modeset_cleanup;

drm_fbdev_generic_setup(ddev, 16);

return 0;

-err_irq_uninstall:
- free_irq(sdev->irq, ddev);
err_modeset_cleanup:
drm_kms_helper_poll_fini(ddev);
err_free_drm_dev:
--
2.34.1



2023-06-23 16:40:12

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH 16/39] drm: renesas: shmobile: Convert to use devm_request_irq()

Hi Geert,

Thank you for the patch.

On Thu, Jun 22, 2023 at 11:21:28AM +0200, Geert Uytterhoeven wrote:
> Convert to managed IRQ handling, to simplify cleanup.
>
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Reviewed-by: Laurent Pinchart <[email protected]>

> ---
> drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c
> index 50fca18282c5cb5e..ece9aedde9b662d4 100644
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c
> @@ -169,7 +169,6 @@ static int shmob_drm_remove(struct platform_device *pdev)
>
> drm_dev_unregister(ddev);
> drm_kms_helper_poll_fini(ddev);
> - free_irq(sdev->irq, ddev);
> drm_dev_put(ddev);
>
> return 0;
> @@ -252,8 +251,8 @@ static int shmob_drm_probe(struct platform_device *pdev)
> goto err_modeset_cleanup;
> sdev->irq = ret;
>
> - ret = request_irq(sdev->irq, shmob_drm_irq, 0, ddev->driver->name,
> - ddev);
> + ret = devm_request_irq(&pdev->dev, sdev->irq, shmob_drm_irq, 0,
> + ddev->driver->name, ddev);
> if (ret < 0) {
> dev_err(&pdev->dev, "failed to install IRQ handler\n");
> goto err_modeset_cleanup;
> @@ -265,14 +264,12 @@ static int shmob_drm_probe(struct platform_device *pdev)
> */
> ret = drm_dev_register(ddev, 0);
> if (ret < 0)
> - goto err_irq_uninstall;
> + goto err_modeset_cleanup;
>
> drm_fbdev_generic_setup(ddev, 16);
>
> return 0;
>
> -err_irq_uninstall:
> - free_irq(sdev->irq, ddev);
> err_modeset_cleanup:
> drm_kms_helper_poll_fini(ddev);
> err_free_drm_dev:

--
Regards,

Laurent Pinchart