diff options
| author | Imre Deak <imre.deak@intel.com> | 2026-07-14 18:26:57 +0300 |
|---|---|---|
| committer | Imre Deak <imre.deak@intel.com> | 2026-07-20 15:46:58 +0300 |
| commit | b03e0f8651ca8d041cb2602be8bb701b5af83dbe (patch) | |
| tree | df0bf697b04a71d59b4d580f0428ea295647969e /drivers/gpu | |
| parent | eb23a5abd1d37c25fa906b5116f0814a68f4ee45 (diff) | |
| download | linux-b03e0f8651ca8d041cb2602be8bb701b5af83dbe.tar.gz linux-b03e0f8651ca8d041cb2602be8bb701b5af83dbe.zip | |
drm/i915/dp: Enable SST fallback between UHBR and non-UHBR rates
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.
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.comd>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patch.msgid.link/20260714152700.555527-4-imre.deak@intel.com
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_dp_link_training.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/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 fa55664c9d98..cb92cff90614 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 e1c356ba11b5..776d93f33385 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; |
