drm/amd/display: read mso dpcd caps
authorHansen Dsouza <Hansen.Dsouza@amd.com>
Fri, 24 Jan 2025 20:12:37 +0000 (15:12 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 5 Mar 2025 15:39:16 +0000 (10:39 -0500)
[Why & How]
Read if panel support multi-sst links

Reviewed-by: Charlene Liu <charlene.liu@amd.com>
Signed-off-by: Hansen Dsouza <Hansen.Dsouza@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc_dp_types.h
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c

index 8bb628ab78554e55013e16c438ce65a8991d20f0..22c2173c687f8c27b7dd58d46d275a6c3aebb33d 100644 (file)
@@ -1220,6 +1220,8 @@ struct dpcd_caps {
        struct replay_info pr_info;
        uint16_t edp_oled_emission_rate;
        union dp_receive_port0_cap receive_port0_cap;
+       /* Indicates the number of SST links supported by MSO (Multi-Stream Output) */
+       uint8_t mso_cap_sst_links_supported;
 };
 
 union dpcd_sink_ext_caps {
index 0785c030f6a6d99e8bf64f519f125181d49559f1..da19f6a3b42bfdff8bf486acc07613e0357d014e 100644 (file)
@@ -2100,6 +2100,17 @@ void detect_edp_sink_caps(struct dc_link *link)
                core_link_read_dpcd(link, DP_SINK_EMISSION_RATE,
                                (uint8_t *)&link->dpcd_caps.edp_oled_emission_rate,
                                sizeof(link->dpcd_caps.edp_oled_emission_rate));
+
+       /*
+        * Read Multi-SST (Single Stream Transport) capability
+        * for eDP version 1.4 or higher.
+        */
+       if (link->dpcd_caps.dpcd_rev.raw >= DP_EDP_14)
+               core_link_read_dpcd(
+                       link,
+                       DP_EDP_MSO_LINK_CAPABILITIES,
+                       (uint8_t *)&link->dpcd_caps.mso_cap_sst_links_supported,
+                       sizeof(link->dpcd_caps.mso_cap_sst_links_supported));
 }
 
 bool dp_get_max_link_enc_cap(const struct dc_link *link, struct dc_link_settings *max_link_enc_cap)