[PATCH] drm/panel: jdi-fhd-r63452: remove panel on DSI attach failure
From: Myeonghun Pak
Date: Mon Apr 20 2026 - 02:57:54 EST
The probe path calls drm_panel_add() before mipi_dsi_attach().
If mipi_dsi_attach() fails, the driver returns without calling
drm_panel_remove(), leaving the panel registered in the global DRM
panel list. The driver's .remove() callback does not handle this case
because failed probe does not transition through the normal bound-device
removal path.
Fix this by unwinding drm_panel_add() when mipi_dsi_attach() fails.
Co-developed-by: Ijae Kim <ae878000@xxxxxxxxx>
Signed-off-by: Ijae Kim <ae878000@xxxxxxxxx>
Co-developed-by: Taegyu Kim <tmk5904@xxxxxxx>
Signed-off-by: Taegyu Kim <tmk5904@xxxxxxx>
Co-developed-by: Yuho Choi <dbgh9129@xxxxxxxxx>
Signed-off-by: Yuho Choi <dbgh9129@xxxxxxxxx>
Signed-off-by: Myeonghun Pak <mhun512@xxxxxxxxx>
---
drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c b/drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c
index cbe354b51..4356c07c4 100644
--- a/drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c
+++ b/drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c
@@ -205,6 +205,7 @@ static int jdi_fhd_r63452_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
dev_err(dev, "Failed to attach to DSI host: %d\n", ret);
+ drm_panel_remove(&ctx->panel);
return ret;
}
--
2.47.1