summaryrefslogtreecommitdiff
path: root/scripts/patch-kernel
diff options
context:
space:
mode:
authorAric Cyr <Aric.Cyr@amd.com>2026-09-18 18:37:43 -0400
committerAlex Deucher <alexander.deucher@amd.com>2026-10-07 12:06:01 -0400
commitd07fc866c52dc759d823ecdbb026306c1273434c (patch)
tree36d155ba0b2ee73b783e0fc68810c58e7db8c1de /scripts/patch-kernel
parente69156294e47185ba96f879d6ddf9d092a61b74d (diff)
downloadlinux-next-d07fc866c52dc759d823ecdbb026306c1273434c.tar.gz
linux-next-d07fc866c52dc759d823ecdbb026306c1273434c.zip
drm/amd/display: only reprogram DRR when v_total values change
[Why] dc_stream_adjust_vmin_vmax() programmed the OTG on every call. FreeSync BTR calls it once per vblank, so identical v_total values were rewritten every frame, each one paying dc_exit_ips_for_hw_access() and, when FAMS is enabled, a blocking DMUB round trip from setup_manual_trigger(). [How] Return early when timing_adjust_pending is clear and every v_total field already matches the request, so hardware is only touched when the values change. stream->adjust is still updated on every path that continues, so a later commit programs the requested values. timing_adjust_pending is the existing "stream->adjust has not reached hardware" marker, so keep it accurate wherever hardware is left untouched: set_drr_and_clear_adjust_pending() now sets it when called with null params, which resets DRR in the OTG during pipe back-end teardown, and the max_v_total overflow path only clears it when set_long_vtotal() runs. Reviewed-by: Josip Pavic <josip.pavic@amd.com> Signed-off-by: Aric Cyr <Aric.Cyr@amd.com> Signed-off-by: Roman Li <roman.li@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'scripts/patch-kernel')
0 files changed, 0 insertions, 0 deletions