[PATCH 21/24] drm/msm/dp: guard subconnector setup on the connector type
From: Dmitry Baryshkov
Date: Wed Jul 22 2026 - 02:45:12 EST
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 <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
---
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