Re: [REGRESSION 7.3] drm/amd/display: single-frame scanout corruption on DCN32 at 120 Hz since a637a140ab86

From: Mikhail Gavrilov

Date: Sun Oct 18 2026 - 18:39:17 EST


The workaround from my previous mail does not survive a suspend. After
resume from S3 the band was back (seen, not measured) with the TV still
in FreeSync mode, because DC had turned SubVP back on.

Snapshots of amdgpu_dm_capabilities, pp_dpm_mclk and the DTN log, all
at 3840x2160@120 with FreeSync enabled (vrr_range 40-120, the EDID
byte-identical in every snapshot):

after boot sub-viewport disabled, UCLK at 1249 MHz
20 s after rtcwake -m mem sub-viewport enabled, UCLK switching,
watermark set A at the register maximum
after toggling Night Light sub-viewport disabled again

dcn32_allow_subvp_high_refresh_rate() keeps SubVP off a single FreeSync
display by reading stream->allow_freesync, but amdgpu_dm sets that
field only on the first flip after a commit, so the modeset forced on
resume is validated without it. A gamma change makes DC validate the
state again, this time with the field set. The patch:

https://lore.kernel.org/all/20261018221726.27259-1-mikhail.v.gavrilov@xxxxxxxxx/

With it, SubVP stays disabled across rtcwake -m mem. Until it is
merged, toggling Night Light after resume restores the workaround.

None of this changes the band itself: in HDMI VRR mode, and at 100 Hz
in either mode, DC uses SubVP anyway.

--
Thanks,
Mikhail