[PATCH] drm/bridge: adv7511: clean up CEC adapter when probe fails

Lucas Stach l.stach at pengutronix.de
Mon Mar 21 10:47:05 UTC 2022


When the probe routine fails we also need to clean up the
CEC adapter registered in adv7511_cec_init().

Fixes: 3b1b975003e4 ("drm: adv7511/33: add HDMI CEC support")
Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
---
The "fixed" commit is not the one introducing the issue, it had been
there as long as the driver supported CEC, but is the earliest commit
that allows conflict free backporting.
864c49a31d6b ("drm/bridge: adv7511: Register and attach our DSI
device at probe") made the issue much more likely to be hit, as the
DSI attach may return -EPROBE_DEFER, so the cleanup path is exercised
a lot more.
---
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
index f8e5da148599..370eb8d5d39b 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -1298,6 +1298,7 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id)
 	adv7511_audio_exit(adv7511);
 	drm_bridge_remove(&adv7511->bridge);
 err_unregister_cec:
+	cec_unregister_adapter(adv7511->cec_adap);
 	i2c_unregister_device(adv7511->i2c_cec);
 	clk_disable_unprepare(adv7511->cec_clk);
 err_i2c_unregister_packet:
-- 
2.34.1



More information about the dri-devel mailing list