Commit 7ee3769a authored by Wenjing Liu's avatar Wenjing Liu Committed by Alex Deucher

drm/amd/display: prefer preferred link cap over verified link settings

[why]
when preferred link cap is set, we should always use
preferred in all validation.
we should not use preferred for some validation but use
verified for others.

[how]
create getter function that gets verified link cap.
if preferred is set, return preferred link settings instead.
Signed-off-by: default avatarWenjing Liu <Wenjing.Liu@amd.com>
Reviewed-by: default avatarNikola Cornij <Nikola.Cornij@amd.com>
Acked-by: default avatarLeo Li <sunpeng.li@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e9164db7
...@@ -597,6 +597,15 @@ uint32_t dc_link_bandwidth_kbps( ...@@ -597,6 +597,15 @@ uint32_t dc_link_bandwidth_kbps(
} }
const struct dc_link_settings *dc_link_get_verified_link_cap(
const struct dc_link *link)
{
if (link->preferred_link_setting.lane_count != LANE_COUNT_UNKNOWN &&
link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN)
return &link->preferred_link_setting;
return &link->verified_link_cap;
}
static void destruct(struct dc *dc) static void destruct(struct dc *dc)
{ {
dc_release_state(dc->current_state); dc_release_state(dc->current_state);
......
...@@ -1549,7 +1549,7 @@ bool dp_validate_mode_timing( ...@@ -1549,7 +1549,7 @@ bool dp_validate_mode_timing(
return true; return true;
/* We always use verified link settings */ /* We always use verified link settings */
link_setting = &link->verified_link_cap; link_setting = dc_link_get_verified_link_cap(link);
/* TODO: DYNAMIC_VALIDATION needs to be implemented */ /* TODO: DYNAMIC_VALIDATION needs to be implemented */
/*if (flags.DYNAMIC_VALIDATION == 1 && /*if (flags.DYNAMIC_VALIDATION == 1 &&
......
...@@ -250,6 +250,9 @@ uint32_t dc_link_bandwidth_kbps( ...@@ -250,6 +250,9 @@ uint32_t dc_link_bandwidth_kbps(
const struct dc_link *link, const struct dc_link *link,
const struct dc_link_settings *link_setting); const struct dc_link_settings *link_setting);
const struct dc_link_settings *dc_link_get_verified_link_cap(
const struct dc_link *link);
bool dc_submit_i2c( bool dc_submit_i2c(
struct dc *dc, struct dc *dc,
uint32_t link_index, uint32_t link_index,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment