On 18/05/2026 21:47, Jonas Karlman wrote: > The dw-hdmi bridge detect() func now updates EDID for the connector. > Something that ensures that display_info.source_physical_address has an > updated CEC phys addr when the hpd_notify() func is called. > > Change to use display_info source_physical_address directly instead of > re-reading EDID to set the CEC phys addr at HPD interrupt. > > Signed-off-by: Jonas Karlman <[email protected]>
Acked-by: Hans Verkuil <[email protected]> Regards, Hans > --- > drivers/gpu/drm/meson/meson_encoder_hdmi.c | 26 ++++------------------ > 1 file changed, 4 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c > b/drivers/gpu/drm/meson/meson_encoder_hdmi.c > index 55c0601df3c6..1b9a1d9ed3d3 100644 > --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c > +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c > @@ -330,28 +330,10 @@ static void meson_encoder_hdmi_hpd_notify(struct > drm_bridge *bridge, > if (!encoder_hdmi->cec_notifier) > return; > > - if (status == connector_status_connected) { > - const struct drm_edid *drm_edid; > - const struct edid *edid; > - > - drm_edid = > drm_bridge_edid_read(encoder_hdmi->bridge.next_bridge, > - encoder_hdmi->connector); > - if (!drm_edid) > - return; > - > - /* > - * FIXME: The CEC physical address should be set using > - * cec_notifier_set_phys_addr(encoder_hdmi->cec_notifier, > - * connector->display_info.source_physical_address) from a path > - * that has read the EDID and called > - * drm_edid_connector_update(). > - */ > - edid = drm_edid_raw(drm_edid); > - > - > cec_notifier_set_phys_addr_from_edid(encoder_hdmi->cec_notifier, edid); > - > - drm_edid_free(drm_edid); > - } else > + if (status == connector_status_connected) > + cec_notifier_set_phys_addr(encoder_hdmi->cec_notifier, > + > connector->display_info.source_physical_address); > + else > cec_notifier_phys_addr_invalidate(encoder_hdmi->cec_notifier); > } >
