If an EDID is present, then call cec_notifier_set_phys_addr. If not, then call cec_notifier_phys_addr_invalidate. This helps the CEC framework differentiate between CEC_PHYS_ADDR_INVALID due to no EDID, or due to an EDID without a Physical Address.
This driver is one of the few that was using cec_notifier_set_phys_addr on disconnect instead of cec_notifier_phys_addr_invalidate. Signed-off-by: Hans Verkuil <[email protected]> Cc: Alain Volmat <[email protected]> Cc: Maxime Ripard <[email protected]> --- drivers/gpu/drm/sti/sti_hdmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sti/sti_hdmi.c b/drivers/gpu/drm/sti/sti_hdmi.c index 7ba9e0b7ba6c..12e05505bbde 100644 --- a/drivers/gpu/drm/sti/sti_hdmi.c +++ b/drivers/gpu/drm/sti/sti_hdmi.c @@ -790,7 +790,7 @@ static void sti_hdmi_disable(struct drm_bridge *bridge, hdmi->enabled = false; - cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID); + cec_notifier_phys_addr_invalidate(hdmi->notifier); } /* @@ -1068,7 +1068,7 @@ sti_hdmi_connector_detect(struct drm_connector *connector, bool force) } DRM_DEBUG_DRIVER("hdmi cable disconnected\n"); - cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID); + cec_notifier_phys_addr_invalidate(hdmi->notifier); return connector_status_disconnected; } -- 2.53.0
