drm/amd/display: VSC SDP supported for SST
authorDerek Lai <Derek.Lai@amd.com>
Thu, 4 Jun 2020 08:29:39 +0000 (16:29 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 1 Jul 2020 05:59:26 +0000 (01:59 -0400)
[why]
If a typeC to HDMI dongle supports YCbCr420 pass through and VSC
colorimetry and pixel encoding formats in the Extended Receiver
Capability, we shall allow VSC SDP to be used.

[How]
The Extended Receiver Capability field shall check the
EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT bit in the
TRAINING_AUX_RD_INTERVAL register.  Removed DPCD rev checking for VSC
SDP.

Signed-off-by: Derek Lai <Derek.Lai@amd.com>
Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Acked-by: Tony Cheng <Tony.Cheng@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/dc/core/dc_link_dp.c

index a19a3ed..58bcf9a 100644 (file)
@@ -4573,10 +4573,8 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector,
                                stream->use_vsc_sdp_for_colorimetry =
                                        aconnector->dc_sink->is_vsc_sdp_colorimetry_supported;
                        } else {
-                               if (stream->link->dpcd_caps.dpcd_rev.raw >= 0x14 &&
-                                       stream->link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED) {
+                               if (stream->link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED)
                                        stream->use_vsc_sdp_for_colorimetry = true;
-                               }
                        }
                        mod_build_vsc_infopacket(stream, &stream->vsc_infopacket);
                }
index baad087..4054df1 100644 (file)
@@ -3376,7 +3376,7 @@ static bool retrieve_link_cap(struct dc_link *link)
        link->dpcd_caps.dpcd_rev.raw =
                        dpcd_data[DP_DPCD_REV - DP_DPCD_REV];
 
-       if (link->dpcd_caps.dpcd_rev.raw >= 0x14) {
+       if (link->dpcd_caps.ext_receiver_cap_field_present) {
                for (i = 0; i < read_dpcd_retry_cnt; i++) {
                        status = core_link_read_dpcd(
                                        link,