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
This commit is contained in:
Imre Deak
2026-07-14 18:26:57 +03:00
parent eb23a5abd1
commit b03e0f8651
2 changed files with 3 additions and 17 deletions

View File

@@ -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;

View File

@@ -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;