drm/amd/display: Avoid create MST prop after registration
authorJerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
Sun, 5 Apr 2020 20:41:09 +0000 (16:41 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 7 Apr 2020 18:10:24 +0000 (14:10 -0400)
[Why]
Prop are created at boot stage, and not allowed to create new prop
after device registration.

[How]
Reuse the connector property from SST if exist.

Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
Reviewed-by: Hersen Wu <hersenxs.wu@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c

index bab587ab6e8d996bee813b6a6114f7d1faf48c22..ffffbf4ec65010c68cc3655566198fa3d4909478 100644 (file)
@@ -5929,7 +5929,8 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
                                adev->mode_info.underscan_vborder_property,
                                0);
 
-       drm_connector_attach_max_bpc_property(&aconnector->base, 8, 16);
+       if (!aconnector->mst_port)
+               drm_connector_attach_max_bpc_property(&aconnector->base, 8, 16);
 
        /* This defaults to the max in the range, but we want 8bpc for non-edp. */
        aconnector->base.state->max_bpc = (connector_type == DRM_MODE_CONNECTOR_eDP) ? 16 : 8;
@@ -5948,8 +5949,9 @@ void amdgpu_dm_connector_init_helper(struct amdgpu_display_manager *dm,
                        &aconnector->base.base,
                        dm->ddev->mode_config.hdr_output_metadata_property, 0);
 
-               drm_connector_attach_vrr_capable_property(
-                       &aconnector->base);
+               if (!aconnector->mst_port)
+                       drm_connector_attach_vrr_capable_property(&aconnector->base);
+
 #ifdef CONFIG_DRM_AMD_DC_HDCP
                if (adev->dm.hdcp_workqueue)
                        drm_connector_attach_content_protection_property(&aconnector->base, true);
index e8208df420d9d786b9f7ae777a5f66d80bc134b9..fabbe78d5aefeefc6f933aef4deadc4f486b1157 100644 (file)
@@ -410,6 +410,14 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
        drm_connector_attach_encoder(&aconnector->base,
                                     &aconnector->mst_encoder->base);
 
+       connector->max_bpc_property = master->base.max_bpc_property;
+       if (connector->max_bpc_property)
+               drm_connector_attach_max_bpc_property(connector, 8, 16);
+
+       connector->vrr_capable_property = master->base.vrr_capable_property;
+       if (connector->vrr_capable_property)
+               drm_connector_attach_vrr_capable_property(connector);
+
        drm_object_attach_property(
                &connector->base,
                dev->mode_config.path_property,