Applied the series. Thanks! Alex
On Fri, May 29, 2026 at 5:34 AM Timur Kristóf <[email protected]> wrote: > > No functional changes. Just clean up a conceptual mismatch. > > Based on feedback on the NUTMEG code in DC, the > preferred_link_setting is meant to force the DP link to a > specific setting, meaning both the link rate and lane count > should be locked to an exact value. What NUTMEG needs is > a lower bound on the link rate, which is not the same concept. > > Implement this as a HW workaround flag instead. > > Suggested-by: Wenjing Liu <[email protected]> > Signed-off-by: Timur Kristóf <[email protected]> > --- > drivers/gpu/drm/amd/display/dc/dc.h | 2 ++ > drivers/gpu/drm/amd/display/dc/link/link_detection.c | 2 +- > .../drm/amd/display/dc/link/protocols/link_dp_capability.c | 6 +++--- > 3 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/dc.h > b/drivers/gpu/drm/amd/display/dc/dc.h > index 75f59ca927ffe..3fb97860722df 100644 > --- a/drivers/gpu/drm/amd/display/dc/dc.h > +++ b/drivers/gpu/drm/amd/display/dc/dc.h > @@ -1731,6 +1731,8 @@ struct dc_scratch_space { > bool dp_skip_DID2; > bool dp_skip_reset_segment; > bool dp_skip_fs_144hz; > + /* Some DP bridges don't work with RBR and must use HBR. */ > + bool dp_skip_rbr; > bool dp_mot_reset_segment; > /* Some USB4 docks do not handle turning off MST DSC once it > has been enabled. */ > bool dpia_mst_dsc_always_on; > diff --git a/drivers/gpu/drm/amd/display/dc/link/link_detection.c > b/drivers/gpu/drm/amd/display/dc/link/link_detection.c > index 1ac6a22fecfee..9f4e90493fed5 100644 > --- a/drivers/gpu/drm/amd/display/dc/link/link_detection.c > +++ b/drivers/gpu/drm/amd/display/dc/link/link_detection.c > @@ -621,7 +621,7 @@ static bool detect_dp(struct dc_link *link, > link->dpcd_caps.sink_count.bits.SINK_COUNT = 1; > /* NUTMEG requires that we use HBR, doesn't work with RBR. */ > if (link->dpcd_caps.branch_dev_id == > DP_BRANCH_DEVICE_ID_00001A) > - link->preferred_link_setting.link_rate = > LINK_RATE_HIGH; > + link->wa_flags.dp_skip_rbr = true; > } > > return true; > diff --git > a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c > b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c > index f44c13300a59c..708dd6f336d8c 100644 > --- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c > +++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c > @@ -750,9 +750,9 @@ static bool decide_dp_link_settings(struct dc_link *link, > struct dc_link_setting > if (req_bw > dp_link_bandwidth_kbps(link, &link->verified_link_cap)) > return false; > > - if (link->preferred_link_setting.link_rate != LINK_RATE_UNKNOWN) { > - initial_link_setting.link_rate = > link->preferred_link_setting.link_rate; > - current_link_setting.link_rate = > link->preferred_link_setting.link_rate; > + if (link->wa_flags.dp_skip_rbr) { > + initial_link_setting.link_rate = LINK_RATE_HIGH; > + current_link_setting.link_rate = LINK_RATE_HIGH; > } > > /* search for the minimum link setting that: > -- > 2.53.0 >
