[PATCH] drm/edid: add non-desktop quirk for Pimax VR headsets
From: Finn Zeruhn
Date: Thu Oct 01 2026 - 21:36:18 EST
Pimax headsets reporting PVR 0x1019 do not identify themselves as
head-mounted displays in their EDID, so desktop environments treat them
as a regular monitor and extend the desktop onto them. The EDID has no
Microsoft VSDB and the DisplayID product type is 0.
Add a non-desktop quirk. The ID is shared by the modern Pimax headsets,
including the Dream Air and the P2-series P2A.
Tested on a Pimax Dream Air: the connector now reports non-desktop,
KWin leaves the output alone and offers it for DRM leasing.
EDID of the Dream Air:
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://gitlab.freedesktop.org/drm/misc/kernel/-/issues/40
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Finn Zeruhn <fzeruhn@xxxxxxxxxx>
---
drivers/gpu/drm/drm_edid.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 3148038747b6..e5cadbeaaea7 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -278,6 +278,9 @@ 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)),
+
/* 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)),
base-commit: 589e63c53a9a57cd3c14cff2ea42ad606c1e2a24
--
2.56.0