On 5/18/26 20:01, Jonas Karlman wrote:
Update EDID and CEC phys addr in the bridge detect() func to closely
match the behavior of a bridge connector with a HDMI bridge attached
and the dw-hdmi connector.

This change introduce a slight delay to the bridge connector detect()
and get_modes() funcs due to multiple EDID reads. This is an acceptable
added delay to help ensure EDID and CEC phys addr always are correct.

Signed-off-by: Jonas Karlman <[email protected]>
---
v7: Update commit message
v6: New patch

This is a temporary change until dw-hdmi is fully converted into a
HDMI bridge in a future part of this multi-series effort.

The patch "drm/bridge-connector: Use cached connector status in
.get_modes()" [1] can help remove one unnecessary EDID read until
dw-hdmi is fully converted into a HDMI bridge.

[1] 
https://lore.kernel.org/dri-devel/[email protected]/
---
  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c 
b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 37406555af7b..0c4388e7aa5e 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2947,8 +2947,17 @@ static enum drm_connector_status
  dw_hdmi_bridge_detect(struct drm_bridge *bridge, struct drm_connector 
*connector)
  {
        struct dw_hdmi *hdmi = bridge->driver_private;
+       enum drm_connector_status status;
- return dw_hdmi_detect(hdmi);
+       status = dw_hdmi_detect(hdmi);
+
+       /*
+        * Update EDID and CEC phys addr to match the behavior of a bridge
+        * connector with a HDMI bridge attached and the dw-hdmi connector.
+        */
+       dw_hdmi_connector_status_update(hdmi, connector, status);
+
+       return status;
  }
static const struct drm_edid *dw_hdmi_bridge_edid_read(struct drm_bridge *bridge,

Reviewed-by: Neil Armstrong <[email protected]>

Thanks,
Neil

Reply via email to