drm/bridge: maxim-max96745: Fix bridge chain detect

Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: Ibd402916ff6aeb5c4ff8ee12ebc58726968d9e7b
This commit is contained in:
Wyon Bi
2022-06-09 11:00:00 +00:00
committed by Tao Huang
parent 65bcc903ef
commit f2f7eb7445

View File

@@ -52,8 +52,13 @@ static enum drm_connector_status
max96745_bridge_connector_detect(struct drm_connector *connector, bool force)
{
struct max96745_bridge *ser = to_max96745_bridge(connector);
struct drm_bridge *bridge = &ser->bridge;
struct drm_bridge *prev_bridge = drm_bridge_get_prev_bridge(bridge);
return drm_bridge_detect(&ser->bridge);
if (prev_bridge && (prev_bridge->ops & DRM_BRIDGE_OP_DETECT))
return drm_bridge_detect(prev_bridge);
return drm_bridge_detect(bridge);
}
static const struct drm_connector_funcs max96745_bridge_connector_funcs = {
@@ -153,6 +158,9 @@ max96745_bridge_detect(struct drm_bridge *bridge)
if (!FIELD_GET(LINK_LOCKED, val))
return connector_status_disconnected;
if (ser->next_bridge && (ser->next_bridge->ops & DRM_BRIDGE_OP_DETECT))
return drm_bridge_detect(ser->next_bridge);
return connector_status_connected;
}