[PATCH v2] drm/edid: add non-desktop quirk for Pimax VR headsets

From: Finn Zeruhn

Date: Fri Oct 16 2026 - 18:56:37 EST


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 used by current models:

PVR 0x1019 Dream Air, Dream Air SE, Crystal Light,
Crystal Super Micro-OLED, P2 series
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 the EDIDs and the list of
models [2]. The P2A EDID is 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@xxxxxxxxxxxxx>
Closes: https://gitlab.freedesktop.org/drm/misc/kernel/-/issues/40
Assisted-by: LLM
Signed-off-by: Finn Zeruhn <fzeruhn@xxxxxxxxxx>
---
v2:
- 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@xxxxxxxxxx/
---
drivers/gpu/drm/drm_edid.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 3148038747b6..e206a8246a9f 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -278,6 +278,12 @@ 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', 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 +304,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: 509a6256d3fd8561d8864a56688dc6442441f878
--
2.56.0