* [PATCH v3] drm/edid: add non-desktop quirk for Pimax VR headsets
@ 2026-11-11 23:26 Finn Zeruhn
0 siblings, 0 replies; only message in thread
From: Finn Zeruhn @ 2026-11-11 23:26 UTC (permalink / raw)
To: dri-devel
Cc: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Jani Nikula, Coreforge,
linux-kernel, Finn Zeruhn, Sefa Eyeoglu
Pimax headsets have no Microsoft HMD VSDB, and their DisplayID
extension is version 1.2, while the kernel only checks the primary use
on DisplayID 2.0. They are therefore exposed as desktop monitors and
VR runtimes cannot lease them.
Add non-desktop quirks for the IDs confirmed by EDIDs:
PVR 0x1019 Dream Air, Dream Air SE, Crystal Light,
Crystal Super Micro-OLED, P2 8K models
PVR 0x101a P2 5K XR and 5K+
PVR 0x101b P2 5K Super
PVR 0x101c Crystal Super 50 PPD QLED
VRT 0x4c31 Crystal Super 57 PPD and Ultrawide QLED
The 57 PPD and Ultrawide QLED report Varjo's vendor ID "VRT".
The older Pimax P1 headsets report SVR 0x1019 [1], which is already
covered by the OSVR entry: name them in its comment.
Tested on a Dream Air. sboys3 collected most of the EDIDs, namely those
of the Crystal and Dream Air models [2]. The P2 EDIDs are in the linked
issue #40.
Dream Air EDID:
00 ff ff ff ff ff ff 00 42 d2 19 10 01 00 00 00
ff 23 01 04 a5 00 00 78 00 30 fd ae 50 3b b2 23
0c 47 4a 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 00 00 00 10 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 fc 00 50
69 6d 61 78 0a 20 20 20 20 20 20 20 00 00 00 fd
08 3c 64 e9 7b ff 01 0a 20 20 20 20 20 20 02 c2
02 03 0f c0 23 09 07 07 83 01 00 00 e2 00 4a 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42
70 12 2b 00 00 03 01 28 43 08 04 88 bf 1b bf 01
c7 80 2f 00 ff 0e 2f 00 1c 80 00 00 cf 39 03 08
bf 1b bf 01 c7 80 2f 00 ff 0e 2f 00 1c 80 00 00
dd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90
Link: https://github.com/linuxhw/EDID/blob/master/Digital/Sensics/SVR1019/302D58069F6B [1]
Link: https://github.com/sboys3/DisplayInfo/tree/main/outputs-nv [2]
Suggested-by: Sefa Eyeoglu <contact@scrumplex.net>
Closes: https://gitlab.freedesktop.org/drm/misc/kernel/-/issues/40
Signed-off-by: Finn Zeruhn <fzeruhn@icloud.com>
---
An LLM helped prepare this patch.
v3:
- Add PVR 0x101a and 0x101b: EDIDs from a 5K XR, a 5K+ and a 5K Super
show them in use.
- Drop the Assisted-by tag, which checkpatch rejects.
v2: https://lore.kernel.org/dri-devel/20261016225621.37572-1-fzeruhn@icloud.com/
- Add PVR 0x101c and VRT 0x4c31 for the Crystal Super QLED models.
- Name the Pimax P1 in the comment of the existing SVR 0x1019 entry.
- Leave out PVR 0x101a and 0x101b from the issue, they are only in
Pimax Play's device list with no EDID showing them in use.
v1: https://lore.kernel.org/dri-devel/20261002013500.16903-1-fzeruhn@icloud.com/
drivers/gpu/drm/drm_edid.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 314803874..9e1324454 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -278,6 +278,14 @@ static const struct edid_quirk {
EDID_QUIRK('H', 'V', 'R', 0xaa01, BIT(EDID_QUIRK_NON_DESKTOP)),
EDID_QUIRK('H', 'V', 'R', 0xaa02, BIT(EDID_QUIRK_NON_DESKTOP)),
+ /* Pimax VR Headsets */
+ EDID_QUIRK('P', 'V', 'R', 0x1019, BIT(EDID_QUIRK_NON_DESKTOP)),
+ EDID_QUIRK('P', 'V', 'R', 0x101a, BIT(EDID_QUIRK_NON_DESKTOP)),
+ EDID_QUIRK('P', 'V', 'R', 0x101b, BIT(EDID_QUIRK_NON_DESKTOP)),
+ EDID_QUIRK('P', 'V', 'R', 0x101c, BIT(EDID_QUIRK_NON_DESKTOP)),
+ /* Pimax Crystal Super 57 PPD and Ultrawide QLED, uses Varjo's vendor ID */
+ EDID_QUIRK('V', 'R', 'T', 0x4c31, BIT(EDID_QUIRK_NON_DESKTOP)),
+
/* Oculus Rift DK1, DK2, CV1 and Rift S VR Headsets */
EDID_QUIRK('O', 'V', 'R', 0x0001, BIT(EDID_QUIRK_NON_DESKTOP)),
EDID_QUIRK('O', 'V', 'R', 0x0003, BIT(EDID_QUIRK_NON_DESKTOP)),
@@ -298,7 +306,7 @@ static const struct edid_quirk {
/* Sensics VR Headsets */
EDID_QUIRK('S', 'E', 'N', 0x1019, BIT(EDID_QUIRK_NON_DESKTOP)),
- /* OSVR HDK and HDK2 VR Headsets */
+ /* OSVR HDK and HDK2, Pimax P1 VR Headsets */
EDID_QUIRK('S', 'V', 'R', 0x1019, BIT(EDID_QUIRK_NON_DESKTOP)),
EDID_QUIRK('A', 'U', 'O', 0x1111, BIT(EDID_QUIRK_NON_DESKTOP)),
base-commit: 3944ca3e6b7d25e545e8ef6498f69941e8e0c8ae
--
2.54.0.windows.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-11 23:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-11 23:26 [PATCH v3] drm/edid: add non-desktop quirk for Pimax VR headsets Finn Zeruhn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®