mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
drm/tve200: Fix probe cleanup after register failure
tve200_modeset_init() creates a panel bridge and initializes the DRM mode config before tve200_probe() registers the DRM device. If drm_dev_register() fails, probe returns an error and the driver's remove callback is not called, so those modeset resources are left behind. Unwind the panel bridge and mode config on that failure path before disabling the clock and dropping the DRM device reference. Signed-off-by: Myeonghun Pak <mhun512@gmail.com> Signed-off-by: Linus Walleij <linusw@kernel.org> Link: https://patch.msgid.link/20260424124118.38649-1-mhun512@gmail.com
This commit is contained in:
parent
d4c14903bf
commit
93dd05a23b
|
|
@ -221,12 +221,16 @@ static int tve200_probe(struct platform_device *pdev)
|
|||
|
||||
ret = drm_dev_register(drm, 0);
|
||||
if (ret < 0)
|
||||
goto clk_disable;
|
||||
goto mode_config_cleanup;
|
||||
|
||||
drm_client_setup_with_fourcc(drm, DRM_FORMAT_RGB565);
|
||||
|
||||
return 0;
|
||||
|
||||
mode_config_cleanup:
|
||||
if (priv->panel)
|
||||
drm_panel_bridge_remove(priv->bridge);
|
||||
drm_mode_config_cleanup(drm);
|
||||
clk_disable:
|
||||
clk_disable_unprepare(priv->pclk);
|
||||
dev_unref:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user