diff options
| author | Ivan Lipski <ivan.lipski@amd.com> | 2026-09-24 14:15:52 -0400 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2026-10-07 12:07:35 -0400 |
| commit | 123e9515f7e05c694d8abc6f786aecd457aab2f3 (patch) | |
| tree | 8faf9f1bc18aeb7a80c94d9fe52646698fe8bcb5 /scripts | |
| parent | e476b30d67743f1af00d8bc92189af4070a73906 (diff) | |
| download | linux-next-123e9515f7e05c694d8abc6f786aecd457aab2f3.tar.gz linux-next-123e9515f7e05c694d8abc6f786aecd457aab2f3.zip | |
drm/amd/display: Send HDMI VRR metadata in VTEM info packet slot
[Why]
Brief blank on HDMI each time VRR engaged and disengaged, with no modeset
at either transition.
amdgpu_dm_update_freesync_state_on_stream() built the VTEM on top of the
buffer holding the AMD FreeSync SPD payload, which becomes
stream->vrr_infopacket. DC routes that to HDMI generic slot 3 (SPD) and
vtem_infopacket to slot 6 (VTEM), and vtem_infopacket was never populated.
So slot 3 carried a VTEM payload the sink parsed as an SPD
InfoFrame, no VTEM was sent, and v_total varied with no valid metadata
describing it. DP uses the VSC/AS-SDP path and is unaffected.
[How]
Build the VTEM into a separate vtem_infopacket, gated on the sink not
advertising AMD FreeSync. Track it in dm_crtc_state, include it in the
freesync_vrr_info_changed comparison and the reset path, and pass it
through bundle->stream_update.vtem_infopacket.
Reviewed-by: Jerry Zuo <jerry.zuo@amd.com>
Signed-off-by: Ivan Lipski <ivan.lipski@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')
0 files changed, 0 insertions, 0 deletions
