Hi Thomas, On Tue, Jul 6, 2021 at 9:49 AM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > Drop the DRM IRQ midlayer in favor of Linux IRQ interfaces. DRM's > IRQ helpers are mostly useful for UMS drivers. Modern KMS drivers > don't benefit from using it. > > Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> Thanks for your patch! > --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c > +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c > @@ -258,7 +256,7 @@ static int shmob_drm_probe(struct platform_device *pdev) > goto err_modeset_cleanup; > } > > - ret = drm_irq_install(ddev, platform_get_irq(pdev, 0)); > + ret = request_irq(platform_get_irq(pdev, 0), shmob_drm_irq, 0, ddev->driver->name, ddev); platform_get_irq() can return a negative error code. While drm_irq_install() took a signed irq parameter (and only considered zero an error, oops), request_irq() takes an unsigned irq. So you better check for errors before calling request_irq(). > if (ret < 0) { > dev_err(&pdev->dev, "failed to install IRQ handler\n"); > goto err_modeset_cleanup; > @@ -275,7 +273,7 @@ static int shmob_drm_probe(struct platform_device *pdev) > return 0; > > err_irq_uninstall: > - drm_irq_uninstall(ddev); > + free_irq(platform_get_irq(pdev, 0), ddev); Similar issue here. > err_modeset_cleanup: > drm_kms_helper_poll_fini(ddev); > err_free_drm_dev: Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds