[PATCH] Test patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 .../display/amdgpu_dm/amdgpu_dm_mst_types.c   | 33 +++----------------
 1 file changed, 5 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index a5e1a93ddaea..5c555a37e367 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -1599,7 +1599,7 @@ enum dc_status dm_dp_mst_is_port_support_mode(
     struct amdgpu_dm_connector *aconnector,
     struct dc_stream_state *stream)
 {
-    int pbn, branch_max_throughput_mps = 0;
+    int bpp, pbn, branch_max_throughput_mps = 0;
     struct dc_link_settings cur_link_settings;
     unsigned int end_to_end_bw_in_kbps = 0;
     unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0;
@@ -1649,34 +1649,11 @@ enum dc_status dm_dp_mst_is_port_support_mode(
             }
         }
     } else {
-        /* Check if mode could be supported within max slot
-         * number of current mst link and full_pbn of mst links.
-         */
-        int pbn_div, slot_num, max_slot_num;
-        enum dc_link_encoding_format link_encoding;
-        uint32_t stream_kbps =
-            dc_bandwidth_in_kbps_from_timing(&stream->timing,
-                dc_link_get_highest_encoding_format(stream->link));
-
-        pbn = kbps_to_peak_pbn(stream_kbps);
-        pbn_div = dm_mst_get_pbn_divider(stream->link);
-        slot_num = DIV_ROUND_UP(pbn, pbn_div);
-
-        link_encoding = dc_link_get_highest_encoding_format(stream->link);
-        if (link_encoding == DC_LINK_ENCODING_DP_8b_10b)
-            max_slot_num = 63;
-        else if (link_encoding == DC_LINK_ENCODING_DP_128b_132b)
-            max_slot_num = 64;
-        else {
-            DRM_DEBUG_DRIVER("Invalid link encoding format\n");
+        /* check if mode could be supported within full_pbn */
+        bpp = convert_dc_color_depth_into_bpc(stream->timing.display_color_depth) * 3;
+        pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp << 4);
+        if (pbn > aconnector->mst_output_port->full_pbn)
             return DC_FAIL_BANDWIDTH_VALIDATE;
-        }
-
-        if (slot_num > max_slot_num ||
-            pbn > aconnector->mst_output_port->full_pbn) {
-            DRM_DEBUG_DRIVER("Mode can not be supported within mst links!");
-            return DC_FAIL_BANDWIDTH_VALIDATE;
-        }
     }
 
     /* check is mst dsc output bandwidth branch_overall_throughput_0_mps */
-- 
2.45.2


Regards,
Kevin





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux