[PATCH v4 22/27] drm/amd/display: freesync_on_desktop support for HDMI VRR
From: Tomasz Pakuła
Date: Mon Feb 16 2026 - 11:46:54 EST
[Why]
Many TVs and other HDMI sinks suffer from blanking and possibly other
glitches when VRR is toggled. With FreeSync present on such sinks, they
behave like the signal is always variable, even in fixed refresh rate
situations. DisplayPort and eDP enforce seamless VRR transitions but
HDMI unfortunately doesn't.
[How]
Keep HDMI VRR toggled if it's supported and not explicitly disabled.
Add logic that control this behavior and use this mode by default until
it can be controlled by connector KMS property.
Functionally, for an end user, this is the same as normal, fixed refresh
rate mode. The only difference is that sink is kept in VRR state which
enables seamless transitions into/out of variable refresh rate.
Uses the already established freesync_on_desktop field and logic.
Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@xxxxxxxxx>
---
.../gpu/drm/amd/display/modules/info_packet/info_packet.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
index 7106b409ae54..7e0adb90af39 100644
--- a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
+++ b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
@@ -633,6 +633,14 @@ static void build_vtem_infopacket_data(const struct dc_stream_state *stream,
vrr_active = vrr->state == VRR_STATE_ACTIVE_VARIABLE ||
vrr->state == VRR_STATE_ACTIVE_FIXED;
+ /*
+ * Enables FreeSync-like behavior by keeping HDMI VRR signalling active
+ * in fixed refresh rate conditions like normal desktop work/web browsing.
+ * Functinally behaves like non-VRR mode by keeping the actual refresh
+ * rate fixed.
+ */
+ if (stream->freesync_on_desktop)
+ vrr_active |= vrr->state == VRR_STATE_INACTIVE;
infopacket->sb[VTEM_MD0] = VTEM_M_CONST << VTEM_M_CONST_BIT;
infopacket->sb[VTEM_MD0] |= VTEM_FVA_FACTOR << VTEM_FVA_BIT;
--
2.53.0