dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/panel: jdi-fhd-r63452: remove panel on DSI attach failure
@ 2026-04-20  6:52 Myeonghun Pak
  2026-04-22 19:25 ` Dmitry Baryshkov
  0 siblings, 1 reply; 3+ messages in thread
From: Myeonghun Pak @ 2026-04-20  6:52 UTC (permalink / raw)
  To: Neil Armstrong
  Cc: Myeonghun Pak, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel,
	linux-kernel, Ijae Kim, Taegyu Kim, Yuho Choi

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@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
Co-developed-by: Yuho Choi <dbgh9129@gmail.com>
Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
---
 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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/panel: jdi-fhd-r63452: remove panel on DSI attach failure
  2026-04-20  6:52 [PATCH] drm/panel: jdi-fhd-r63452: remove panel on DSI attach failure Myeonghun Pak
@ 2026-04-22 19:25 ` Dmitry Baryshkov
  2026-04-23 11:23   ` Myeonghun Pak
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry Baryshkov @ 2026-04-22 19:25 UTC (permalink / raw)
  To: Myeonghun Pak
  Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel,
	linux-kernel, Ijae Kim, Taegyu Kim, Yuho Choi

On Mon, Apr 20, 2026 at 03:52:15PM +0900, Myeonghun Pak wrote:
> 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@gmail.com>
> Signed-off-by: Ijae Kim <ae878000@gmail.com>
> Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
> Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
> Co-developed-by: Yuho Choi <dbgh9129@gmail.com>
> Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
> ---
>  drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c | 1 +
>  1 file changed, 1 insertion(+)
> 

Please group similar pathces in a single series. There is
devm_drm_panel_add() in drm-misc-next.

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/panel: jdi-fhd-r63452: remove panel on DSI attach failure
  2026-04-22 19:25 ` Dmitry Baryshkov
@ 2026-04-23 11:23   ` Myeonghun Pak
  0 siblings, 0 replies; 3+ messages in thread
From: Myeonghun Pak @ 2026-04-23 11:23 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, dri-devel,
	linux-kernel, Ijae Kim, Taegyu Kim, Yuho Choi

[-- Attachment #1: Type: text/plain, Size: 1594 bytes --]

Dmitry,

Thank you for the review.

As you pointed out, I will group the similar patches into a single series
for submission.

I also agree that using devm_drm_panel_add() is a better approach for
cleaning up the code. I will re-work the next version to apply this managed
resource API.

Thanks,

Myeonghun Pak


2026년 4월 23일 (목) 오전 4:25, Dmitry Baryshkov <
dmitry.baryshkov@oss.qualcomm.com>님이 작성:

> On Mon, Apr 20, 2026 at 03:52:15PM +0900, Myeonghun Pak wrote:
> > 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@gmail.com>
> > Signed-off-by: Ijae Kim <ae878000@gmail.com>
> > Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
> > Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
> > Co-developed-by: Yuho Choi <dbgh9129@gmail.com>
> > Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
> > Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
> > ---
> >  drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
>
> Please group similar pathces in a single series. There is
> devm_drm_panel_add() in drm-misc-next.
>
> --
> With best wishes
> Dmitry
>

[-- Attachment #2: Type: text/html, Size: 6028 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-04-24  7:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-20  6:52 [PATCH] drm/panel: jdi-fhd-r63452: remove panel on DSI attach failure Myeonghun Pak
2026-04-22 19:25 ` Dmitry Baryshkov
2026-04-23 11:23   ` Myeonghun Pak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox