Hi Philipp, On Fri, 2022-01-28 at 17:19 +0800, Liu Ying wrote: > In dw_hdmi_imx_probe(), if error happens after dw_hdmi_probe() returns > successfully, dw_hdmi_remove() should be called where necessary as > bailout. > > Fixes: c805ec7eb210 ("drm/imx: dw_hdmi-imx: move initialization into probe") > Cc: Philipp Zabel <p.za...@pengutronix.de> > Cc: David Airlie <airl...@linux.ie> > Cc: Daniel Vetter <dan...@ffwll.ch> > Cc: Shawn Guo <shawn...@kernel.org> > Cc: Sascha Hauer <s.ha...@pengutronix.de> > Cc: Pengutronix Kernel Team <ker...@pengutronix.de> > Cc: Fabio Estevam <feste...@gmail.com> > Cc: NXP Linux Team <linux-...@nxp.com> > Signed-off-by: Liu Ying <victor....@nxp.com>
Any comments? Can you please pick this up? Regards, Liu Ying > --- > drivers/gpu/drm/imx/dw_hdmi-imx.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/imx/dw_hdmi-imx.c > b/drivers/gpu/drm/imx/dw_hdmi-imx.c > index 87428fb23d9f..a2277a0d6d06 100644 > --- a/drivers/gpu/drm/imx/dw_hdmi-imx.c > +++ b/drivers/gpu/drm/imx/dw_hdmi-imx.c > @@ -222,6 +222,7 @@ static int dw_hdmi_imx_probe(struct platform_device *pdev) > struct device_node *np = pdev->dev.of_node; > const struct of_device_id *match = of_match_node(dw_hdmi_imx_dt_ids, > np); > struct imx_hdmi *hdmi; > + int ret; > > hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); > if (!hdmi) > @@ -243,10 +244,15 @@ static int dw_hdmi_imx_probe(struct platform_device > *pdev) > hdmi->bridge = of_drm_find_bridge(np); > if (!hdmi->bridge) { > dev_err(hdmi->dev, "Unable to find bridge\n"); > + dw_hdmi_remove(hdmi->hdmi); > return -ENODEV; > } > > - return component_add(&pdev->dev, &dw_hdmi_imx_ops); > + ret = component_add(&pdev->dev, &dw_hdmi_imx_ops); > + if (ret) > + dw_hdmi_remove(hdmi->hdmi); > + > + return ret; > } > > static int dw_hdmi_imx_remove(struct platform_device *pdev)