Enable link training fallback between UHBR and non-UHBR link rates on DP
SST links. This was disabled so far to preserve the fallback behavior.
There isn't a known issue related to such a fallback and DP MST has been
using this for a while already. Also, enabling UHBR rates over
Thunderbolt tunnels in a follow-up change, which at least on some links
supports only 4 lanes and not 1 or 2 lanes on UHBR, makes a
UHBR->non-UHBR fallback scenario more likely.

At the same time align the corresponding link training fallback kunit
test, allowing a UHBR <-> non-UHBR fallback there as well.

Signed-off-by: Imre Deak <[email protected]>
---
 .../gpu/drm/i915/display/intel_dp_link_training.c |  5 -----
 .../drm/i915/display/tests/intel_dp_link_test.c   | 15 +++------------
 2 files changed, 3 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c 
b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
index fa55664c9d98e..cb92cff906146 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
@@ -1874,11 +1874,6 @@ static bool reduce_link_params(struct intel_dp 
*intel_dp, const struct intel_crt
                        continue;
                }
 
-               if (!is_mst &&
-                   drm_dp_is_uhbr_rate(config.rate) !=
-                   drm_dp_is_uhbr_rate(old_config.rate))
-                       continue;
-
                *new_link_rate = config.rate;
                *new_lane_count = config.lane_count;
                new_found = true;
diff --git a/drivers/gpu/drm/i915/display/tests/intel_dp_link_test.c 
b/drivers/gpu/drm/i915/display/tests/intel_dp_link_test.c
index e1c356ba11b59..776d93f333851 100644
--- a/drivers/gpu/drm/i915/display/tests/intel_dp_link_test.c
+++ b/drivers/gpu/drm/i915/display/tests/intel_dp_link_test.c
@@ -1199,11 +1199,6 @@ get_fallback_configs_for_output_type(struct kunit *test,
        }
 }
 
-static bool output_type_allows_uhbr_fallback(enum intel_output_type 
output_type)
-{
-       return output_type == INTEL_OUTPUT_DP_MST;
-}
-
 static void assert_config_is_supported(const struct test_config_table 
*expected_table,
                                       const struct intel_dp_link_config 
*config)
 {
@@ -1230,14 +1225,10 @@ static bool get_fallback_config(const struct 
test_config_table *expected_table,
                const struct intel_dp_link_config *config =
                        &config_set->entries[i];
 
-               if (output_type_allows_uhbr_fallback(output_type) ||
-                   (drm_dp_is_uhbr_rate(target_config->rate) ==
-                    drm_dp_is_uhbr_rate(config->rate))) {
-                       assert_config_is_supported(expected_table, config);
-                       *fallback_config = *config;
+               assert_config_is_supported(expected_table, config);
+               *fallback_config = *config;
 
-                       return true;
-               }
+               return true;
        }
 
        return false;
-- 
2.49.1

Reply via email to