public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm: Enable eDP VRR for panels with DisplayID Adaptive Sync
@ 2026-04-15 13:06 Jake S
  2026-04-15 13:06 ` [PATCH 1/2] drm/edid: populate monitor_range from DisplayID Adaptive Sync block Jake S
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Jake S @ 2026-04-15 13:06 UTC (permalink / raw)
  To: intel-gfx; +Cc: dri-devel, jani.nikula, ville.syrjala, rodrigo.vivi, Jake S

Many 2025-2026 laptops (Dell XPS, Framework, etc.) ship with OLED eDP
panels that support VRR 20-120Hz. These panels advertise their VRR
capability through a DisplayID v2.0 Adaptive Sync Data Block (tag 0x2B)
in their EDID. VRR works fine on Windows.

On Linux, VRR is broken due to two issues:

1. The DRM EDID parser (drm_edid.c) only reads monitor range from the
   base EDID Display Range Limits descriptor (tag 0xFD). It does not
   parse the DisplayID Adaptive Sync block. This leaves monitor_range
   zeroed. AMD's driver has a private workaround; the generic DRM
   layer does not.

2. The Intel display driver (intel_vrr.c) gates eDP VRR on a VBT
   (Video BIOS Table) firmware flag. Most OEMs don't set this flag
   because the Windows driver doesn't need it. This blocks VRR even
   when the EDID clearly declares support.

This series fixes both issues:
 - Patch 1 adds generic DisplayID Adaptive Sync parsing to drm_edid.c,
   benefiting all DRM drivers.
 - Patch 2 relaxes the Intel eDP VRR gate to also accept EDID-based
   capability when the VBT flag is absent.

Tested on Dell XPS 2026 (Intel Panther Lake, xe driver, LG Display
OLED 3200x2000). VRR 20-120Hz confirmed via kernel vblank event
tracing -- display dynamically varies between 32Hz (idle) and 120Hz
(active rendering).

Related work: Adriano Vero posted a similar DisplayID range parsing
patch to LKML (2026-03-28) which has not yet been merged.

GitHub: https://github.com/jibsta210/edp-vrr-linux

Jake S (2):
  drm/edid: populate monitor_range from DisplayID Adaptive Sync block
  drm/i915/display: allow eDP VRR when EDID has adaptive sync range

 gpu/drm/drm_edid.c               | 53 ++++++++++++++++++++++++++++++++
 gpu/drm/i915/display/intel_vrr.c |  7 ++++-
 2 files changed, 59 insertions(+), 1 deletion(-)

-- 
2.53.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-04-16 13:21 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-15 13:06 [PATCH 0/2] drm: Enable eDP VRR for panels with DisplayID Adaptive Sync Jake S
2026-04-15 13:06 ` [PATCH 1/2] drm/edid: populate monitor_range from DisplayID Adaptive Sync block Jake S
2026-04-15 13:06 ` [PATCH 2/2] drm/i915/display: allow eDP VRR when EDID has adaptive sync range Jake S
2026-04-15 14:01   ` Ville Syrjälä
2026-04-15 19:08   ` Jake S
2026-04-15 19:16     ` Ville Syrjälä
2026-04-15 19:39   ` Jake S
2026-04-15 14:05 ` [PATCH 0/2] drm: Enable eDP VRR for panels with DisplayID Adaptive Sync Ville Syrjälä
2026-04-15 19:08 ` Jake S
2026-04-16 13:21 ` ✗ LGCI.VerificationFailed: failure for " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox