GPD Win Max

This article or section does not follow the
Laptop page guidelines
.
Reason:
Hardware table needs cleaning up to abide by
Help:Laptop page guidelines#Adding hardware information
. PCI/USB IDs are missing.
#BIOS updates
could be used as the base for a proper
"Firmware" section
, a
"Function keys" section
and
"Accessibility" section
is missing. (Discuss in
Talk:GPD Win Max
)
Hardware
Bus + ID
Working
Bus + ID
Working
Bus + ID
Working
Win Max
Win Max 2021
Win Max 2
Video
?
Yes
?
Yes
PCI ?
Yes
Wireless
?
Yes
?
Yes
PCI ?
Yes
Ethernet
?
Yes
?
Yes
n/a
n/a
Bluetooth
?
Yes
?
Yes
?
Yes
Audio
?
Yes
?
Yes
?
Yes
Camera
n/a
n/a
n/a
n/a
USB 058e:3864
Yes
Keyboard
?
Yes
?
Yes
PS/2 ?
Yes
Touchpad
?
Yes
?
Yes
I2C ?
Yes
Gamepad
Yes
Yes
USB 045e:028e
Yes
Touchscreen
?
Yes
?
Yes
I2C ?
Yes
Stylus
n/a
n/a
n/a
n/a
n/a
Yes
MicroSD
?
Yes
?
Yes
?
Yes
SD Card
n/a
n/a
n/a
n/a
?
Yes
Fingerprint
n/a
n/a
n/a
n/a
USB 2541:9711
No
IMU
n/a
n/a
n/a
n/a
I2C ?
Yes
Models
There are several models in the GPD Win Max family, some multiple SKUs.
GPD Win Max (2020)
Display: 8" 1280x800
CPU: Intel Core i5-1037G7
Graphics: Intel Iris Plus 940
RAM: 16 GB LPDDR4x 3733
Storage: 512 GB PCIe M.2 NVMe SSD
Network: 1 GbE, Intel WiFi 6 AX, BT 5.0
Thunderbolt 3
GPD Win Max 2021
Display: 8" 1280x800
CPU: Intel Core i7-1195G7 / AMD Ryzen 7 4800U
Graphics: Intel Iris Xe G7 / AMD Radeon Vega 8
RAM: 16 GB LPDDR4x 4226
Storage: 1 TB PCIe M.2 NVMe SSD
Network: 1 GbE, Intel WiFi 6 AX BT 5.0
Thunderbolt 4 (Intel)
GPD Win Max 2 (2022)
Display: 10.1" 2560x1600
CPU: Intel Core i7-1260P / AMD Ryzen 7 6800U
Graphics: Intel Iris Xe / AMD Radeon 680M
RAM: 16/32 GB LPDDR5 6400
Storage: 1/2 TB PCIe 4.0 M.2 NVMe SSD
Network: Intel WiFi 6 AX BT 5.2
Thunderbolt 4 (Intel) | USB4 (AMD)
GPD Win Max 2 (2023)
Display: 10.1" 2560x1600
CPU: AMD Ryzen 7 7640U / AMD Ryzen 7 7840U
Graphics: AMD Radeon 680M / AMD Radeon 780M
RAM: 16/32/64 GB LPDDR5 6400
Storage: 1/2 TB PCIe 4.0 M.2 NVMe SSD
Network: Intel WiFi 6 AX210 BT 5.2
USB4
Driver
Fan driver
Here is an experimental driver that expose GPD device's fan to kernel's hwmon subsystem:
gpd-fan-driver
. It has been packaged on AUR
gpd-fan-driver-dkms-git
AUR
Warn: This driver has not been fully tested and reviewed. It may cause damage to your device. Use at your own risk.
Fixes
GPD Win Max 2020/2021
Touchscreen
If you are using
Xorg
, create the file:
/etc/X11/xorg.conf.d/99-touchscreen.conf
to rotate the touchscreen.
/etc/X11/xorg.conf.d/99-touchscreen.conf
Section "InputClass"
  Identifier    "calibration"
  MatchProduct  "Goodix Capacitive TouchScreen"
  Option        "TransformationMatrix"   "0 1 0 -1 0 1 0 0 1"
EndSection
Mute Key
The mute key does not send a release code. To fix it, create a new udev hwdb file under
/etc/udev/hwdb.d/
, and configure the key to trigger an automatic release event.
/etc/udev/hwdb.d/90-gpd-rules.hwdb
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGPD:pnG1619-01:pvr*
 KEYBOARD_KEY_a0=!mute
GPD Win Max 2021
Screen rotation
This device uses a portrait screen, see
Tablet PC#Screen rotation
.
GPD Win Max 2
Keyboard
BIOS < 1.04 and kernel > 5.18.9: the keyboard IRQ, as specified in the BIOS, is incompatible with a change made in kernel 5.18.10 targeting AMD 6000 APUs.
Consequently, the keyboard will not work without
either
patching the kernel
or
applying a
DSDT override
.
Kernel patch:
kbd_irq.patch
diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 510cdec375c4..c2d494784425 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -416,16 +416,6 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
 {
 	int i;

-#ifdef CONFIG_X86
-	/*
-	 * IRQ override is not needed on modern AMD Zen systems and
-	 * this override breaks active low IRQs on AMD Ryzen 6000 and
-	 * newer systems. Skip it.
-	 */
-	if (boot_cpu_has(X86_FEATURE_ZEN))
-		return false;
-#endif
-
 	for (i = 0; i < ARRAY_SIZE(skip_override_table); i++) {
 		const struct irq_override_cmp *entry = &skip_override_table[i];
DSDT changes:
kbd_dsdt.diff
21c21
< DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x01072009)
---
> DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x0107200a)
7102c7102
<                 IRQNoFlags ()
---
>                 IRQ (Level, ActiveLow, Exclusive, )
7121c7121
<                     IRQNoFlags ()
---
>                     IRQ (Level, ActiveLow, Exclusive, )
IMU (Accelerometer + Gyro)
The IMU (Bosch BMI160) is incorrectly identified in the BIOS.  A
DKMS patch
may be applied.
Alternatively, a
DSDT override
may be generated with the correct part number.  The aformentioned keyboard fix and following IMU fix may be combined into a single DSDT override.
DSDT changes:
imu_dsdt.diff
21c21
< DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x01072009)
---
> DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x0107200a)
7214,7215c7214,7215
<             Name (_HID, "10EC5280")  // _HID: Hardware ID
<             Name (_CID, "10EC5280")  // _CID: Compatible ID
---
>             Name (_HID, "BMI0160")  // _HID: Hardware ID
>             Name (_CID, "BMI0160")  // _CID: Compatible ID
GPD Win Max 2 (2023)
Sleep/ Si0X
With the old BIOS, The GPD Win Max 2 2023 edition might have problems with sleep: It might wake up (instantaneously or after some time). It is now working on
https://gitlab.freedesktop.org/drm/amd/-/issues/3073
.
It is now fixed in the .38 BIOS.
IMU (Accelerometer + Gyro)
With the old BIOS, the IMU (Bosch BMI260) is incorrectly identified in the BIOS. It is named
BMI0160:00
in ACPI table.
It is now corrected in the .40 BIOS.
The package
bmi260-dkms
AUR
installs the correct kernel driver
bmi260_i2c
and the sensor works with that. (For low level testing, use
/usr/lib/iio-sensor-proxy -v
from package
iio-sensor-proxy
.)
Kernel modules
bmi160_spi
,
bmi160_i2c
and
bmi160_core
can be
blacklisted
to stop false autoload if not needed for some external device.
Known issues
GPD Win Max 2021 (Intel)
Deep sleep
Deep sleep is not working and there is no fix.
GPD Win Max 2
Fingerprint reader
The fingerprint reader (ChipSailing CS9711 @ USB 5.4) now has a experimental support for libfprint
[1]
USB autosuspend
On BIOS version v1.04, the USB controller may fail to enumerate devices that are newly plugged in after boot. This is due to a bug with USB suspend support and can be worked around by disabling autosuspend with the
kernel parameter
usbcore.autosuspend=-1
.
GPD Win Max 2 (2023)
Fingerprint reader
The fingerprint reader (ChipSailing CS9711 @ USB 5.4) now has a experimental support for libfprint
[2]
USB4/Thunderbolt eGPU Crashes
Using an eGPU via USB4/Thunderbolt (not OCuLink) may result in PCIe errors causing the desktop environment and/or application using the eGPU to crash. To ignore these errors, try adding the
kernel parameter
pci=noaer
; this disables
PCI Express Advanced Error Reporting
which disables reporting and mitigation of PCIe errors but does not actually resolve the errors. The errors, however, do not appear to hinder the functioning of the GPU.
Notes
GPD Win Max (2020) kernel requirement
The 2020 variant uses a different location for EDID that is not supported by Linux kernels prior to 5.18.
Linux kernel 5.18 or above is required for the screen to work.
BIOS updates
fwupd
is not supported.
GPD provides BIOS updates via Windows executables in the following locations:
GPD Win Max:
https://gpd.hk/gpdwinmaxfirmware
GPD Win Max 2021:
https://gpd.hk/gpdwinmax2021firmwaredriver
GPD Win Max 2:
https://gpd.hk/gpdwinmax2firmwareanddriver
See
Windows PE
for instructions on how to make a bootable Windows environment to apply the updates.