Re: [PATCH] drm/panel: feiyang-fy07024di26a30d: cleanup if panel attaching failed
On Thu, Jan 7, 2021 at 10:16 AM Icenowy Zheng wrote: > > > > 于 2021年1月6日 GMT+08:00 下午5:47:20, Jagan Teki 写到: > >On Sat, Nov 28, 2020 at 6:23 PM Icenowy Zheng wrote: > >> > >> Attaching the panel can fail, so cleanup work is necessary, otherwise > >> a pointer to freed struct drm_panel* will remain in drm_panel code. > >> > >> Do the cleanup if panel attaching failed. > >> > >> Fixes: 69dc678abc2b ("drm/panel: Add Feiyang FY07024DI26A30-D > >MIPI-DSI LCD panel") > > > >The fact that this has failed to probe due to recent changes in > >sun6i_mipi_dsi.c I don't know how to put that into the commit message. > > It's not related, we shouldn't assume this panel driver will always > be used with sunxi SoCs. Well, I'm aware of it. What I'm trying to say is this panel has referenced with one of exiting panel in a tree and that indeed return mipi_dsi_attach and it verified with DSI host at that time. > > It's a panel driver bug that cannot deal with -EPROBE_DEFER well. Yes, ie reason I have added Reviewed-by tag above. Jagan.
Re: [PATCH] drm/panel: feiyang-fy07024di26a30d: cleanup if panel attaching failed
于 2021年1月6日 GMT+08:00 下午5:47:20, Jagan Teki 写到: >On Sat, Nov 28, 2020 at 6:23 PM Icenowy Zheng wrote: >> >> Attaching the panel can fail, so cleanup work is necessary, otherwise >> a pointer to freed struct drm_panel* will remain in drm_panel code. >> >> Do the cleanup if panel attaching failed. >> >> Fixes: 69dc678abc2b ("drm/panel: Add Feiyang FY07024DI26A30-D >MIPI-DSI LCD panel") > >The fact that this has failed to probe due to recent changes in >sun6i_mipi_dsi.c I don't know how to put that into the commit message. It's not related, we shouldn't assume this panel driver will always be used with sunxi SoCs. It's a panel driver bug that cannot deal with -EPROBE_DEFER well. >> Signed-off-by: Icenowy Zheng >> --- > >Reviewed-by: Jagan Teki
Re: [PATCH] drm/panel: feiyang-fy07024di26a30d: cleanup if panel attaching failed
On Sat, Nov 28, 2020 at 6:23 PM Icenowy Zheng wrote: > > Attaching the panel can fail, so cleanup work is necessary, otherwise > a pointer to freed struct drm_panel* will remain in drm_panel code. > > Do the cleanup if panel attaching failed. > > Fixes: 69dc678abc2b ("drm/panel: Add Feiyang FY07024DI26A30-D MIPI-DSI LCD > panel") The fact that this has failed to probe due to recent changes in sun6i_mipi_dsi.c I don't know how to put that into the commit message. > Signed-off-by: Icenowy Zheng > --- Reviewed-by: Jagan Teki
[PATCH] drm/panel: feiyang-fy07024di26a30d: cleanup if panel attaching failed
Attaching the panel can fail, so cleanup work is necessary, otherwise a pointer to freed struct drm_panel* will remain in drm_panel code. Do the cleanup if panel attaching failed. Fixes: 69dc678abc2b ("drm/panel: Add Feiyang FY07024DI26A30-D MIPI-DSI LCD panel") Signed-off-by: Icenowy Zheng --- drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c index 581661b506f8..f9c1f7bc8218 100644 --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c @@ -227,7 +227,13 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi) dsi->format = MIPI_DSI_FMT_RGB888; dsi->lanes = 4; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret < 0) { + drm_panel_remove(>panel); + return ret; + } + + return 0; } static int feiyang_dsi_remove(struct mipi_dsi_device *dsi) -- 2.28.0