[PATCH 24/24] drm/bridge-connector: attach the DP subconnector property
From: Dmitry Baryshkov
Date: Wed Jul 22 2026 - 02:50:36 EST
DisplayPort connectors can expose the subconnector property, describing
the attached dongle. While i915 and amdgpu drivers already provide this
property, bridge-based DisplayPort connectors don't expose it.
Attach the DP subconnector property from drm_bridge_connector_init()
whenever the resolved connector type is DisplayPort, and drop the
open-coded attachment from the msm code, pushing other DP drivers
towards adding support for the property.
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
---
drivers/gpu/drm/display/drm_bridge_connector.c | 4 ++++
drivers/gpu/drm/msm/msm_kms.c | 5 -----
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c b/drivers/gpu/drm/display/drm_bridge_connector.c
index 8b54069fa53a..f83d5f52ab14 100644
--- a/drivers/gpu/drm/display/drm_bridge_connector.c
+++ b/drivers/gpu/drm/display/drm_bridge_connector.c
@@ -1089,6 +1089,10 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
IS_ENABLED(CONFIG_DRM_DISPLAY_HDCP_HELPER))
drm_connector_attach_content_protection_property(connector, true);
+ /* The DP subconnector property applies to DisplayPort only. */
+ if (connector_type == DRM_MODE_CONNECTOR_DisplayPort)
+ drm_connector_attach_dp_subconnector_property(connector);
+
ret = drm_connector_attach_encoder(connector, encoder);
if (ret)
return ERR_PTR(ret);
diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
index 71af3780b7b1..cf602be09ff8 100644
--- a/drivers/gpu/drm/msm/msm_kms.c
+++ b/drivers/gpu/drm/msm/msm_kms.c
@@ -320,7 +320,6 @@ static int msm_kms_init_connectors(struct drm_device *ddev)
drm_for_each_encoder(encoder, ddev) {
struct drm_connector *connector;
- int ret;
/* the virtual writeback encoder brings its own connector */
if (encoder->encoder_type == DRM_MODE_ENCODER_VIRTUAL)
@@ -333,10 +332,6 @@ static int msm_kms_init_connectors(struct drm_device *ddev)
encoder->name, PTR_ERR(connector));
return PTR_ERR(connector);
}
-
- /* The DP subconnector property applies to DisplayPort only. */
- if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort)
- drm_connector_attach_dp_subconnector_property(connector);
}
return 0;
--
2.47.3