[PATCH] drm/adp: Free FE IRQ on bind failure

From: Myeonghun Pak

Date: Wed Jun 24 2026 - 05:06:38 EST


adp_drm_bind() requests the front-end IRQ before registering the DRM
device. If drm_dev_register() fails, the function returns immediately
and leaves the IRQ handler registered.

Release the IRQ on the drm_dev_register() error path. The normal unbind
path still frees the IRQ after successful registration.

Fixes: 332122eba628 ("drm: adp: Add Apple Display Pipe driver")
Co-developed-by: Ijae Kim <ae878000@xxxxxxxxx>
Signed-off-by: Ijae Kim <ae878000@xxxxxxxxx>
Signed-off-by: Myeonghun Pak <mhun512@xxxxxxxxx>

---
drivers/gpu/drm/adp/adp_drv.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/adp/adp_drv.c b/drivers/gpu/drm/adp/adp_drv.c
index 4554cf75565e..20f38543d04e 100644
--- a/drivers/gpu/drm/adp/adp_drv.c
+++ b/drivers/gpu/drm/adp/adp_drv.c
@@ -535,9 +535,13 @@ static int adp_drm_bind(struct device *dev)

err = drm_dev_register(&adp->drm, 0);
if (err)
- return err;
+ goto err_free_irq;

return 0;
+
+err_free_irq:
+ free_irq(adp->fe_irq, adp);
+ return err;
}

static void adp_drm_unbind(struct device *dev)
--
2.47.1