mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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®