In order to make sure that CEC adapters or notifiers are unregistered and CEC-related data is properly destroyed make drm_connector_cleanup() call CEC's unregister() callback.
Signed-off-by: Dmitry Baryshkov <[email protected]> Signed-off-by: Dmitry Baryshkov <[email protected]> --- drivers/gpu/drm/drm_connector.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index ba08fbd973829e49ea977251c4f0fb6d96ade631..ae9c02ef9ab102db03c2824683ece37cfbcd3300 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -743,6 +743,13 @@ void drm_connector_cec_phys_addr_set(struct drm_connector *connector) } EXPORT_SYMBOL(drm_connector_cec_phys_addr_set); +static void drm_connector_cec_unregister(struct drm_connector *connector) +{ + if (connector->cec.funcs && + connector->cec.funcs->unregister) + connector->cec.funcs->unregister(connector); +} + /** * drm_connector_cleanup - cleans up an initialised connector * @connector: connector to cleanup @@ -763,6 +770,8 @@ void drm_connector_cleanup(struct drm_connector *connector) platform_device_unregister(connector->hdmi_audio.codec_pdev); + drm_connector_cec_unregister(connector); + if (connector->privacy_screen) { drm_privacy_screen_put(connector->privacy_screen); connector->privacy_screen = NULL; -- 2.39.5
