The DP subconnector property only applies to full DisplayPort outputs. This was expressed as "!is_edp", which infers the property's applicability indirectly from the port flavour rather than from the connector it is attached to. Besides eDP, that is also wrong for an HDMI output driven by the DP controller through a DP-to-HDMI bridge: such a sink is not eDP either, so it would be handed a DP subconnector property it should never get.
Key the DP subconnector calls off the connector type directly (DRM_MODE_CONNECTOR_DisplayPort) instead. This ties the decision to the object the property lives on and correctly covers both cases, skipping eDP as well as HDMI (via a DP-to-HDMI bridge) outputs. Assisted-by: Claude:claude-opus-4-8 Signed-off-by: Dmitry Baryshkov <[email protected]> --- drivers/gpu/drm/msm/dp/dp_display.c | 4 ++-- drivers/gpu/drm/msm/dp/dp_drm.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 3397a3a47ef3..4f6da636f7c6 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -295,7 +295,7 @@ static int msm_dp_display_process_hpd_high(struct msm_dp_display_private *dp) msm_dp_link_process_request(dp->link); - if (!dp->msm_dp_display.is_edp) + if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) drm_dp_set_subconnector_property(connector, connector_status_connected, dp->panel->dpcd, @@ -477,7 +477,7 @@ static int msm_dp_hpd_unplug_handle(struct msm_dp_display_private *dp) * We don't need separate work for disconnect as * connect/attention interrupts are disabled */ - if (!dp->msm_dp_display.is_edp) + if (dp->msm_dp_display.connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) drm_dp_set_subconnector_property(dp->msm_dp_display.connector, connector_status_disconnected, dp->panel->dpcd, diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c index 6b55753da0f7..00653b0364dc 100644 --- a/drivers/gpu/drm/msm/dp/dp_drm.c +++ b/drivers/gpu/drm/msm/dp/dp_drm.c @@ -323,7 +323,7 @@ struct drm_connector *msm_dp_drm_connector_init(struct msm_dp *msm_dp_display, if (IS_ERR(connector)) return connector; - if (!msm_dp_display->is_edp) + if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) drm_connector_attach_dp_subconnector_property(connector); return connector; -- 2.47.3
