GPD Win Max - ArchWiki

Jump to content
Toggle the table of contents

# GPD Win Max

From ArchWiki

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

## 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.

If you are using Xorg, create `/etc/X11/xorg.conf.d/30-monitor.conf` to rotate the screen:

Note: The Identifier may be different depending on your display driver of choice (either `DSI-1` (modesetting) or `DSI1` (xf86-video-intel))

    /etc/X11/xorg.conf.d/30-monitor.conf

    Section "Monitor"

      Identifier "DSI-1"

      Option     "Rotate" "right"

    EndSection

To rotate the virtual console, add `fbcon=rotate:1` to the Kernel parameters.

### 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's now fixed in the .38 BIOS.

#### IMU (Accelerometer + Gyro)

With the old BIOS, the IMU (Bosch BMI260) is incorrectly identified in the BIOS. It's named `BMI0160:00` in ACPI table. It's now corrected in the .40 BIOS.

The package bmi260-dkmsAUR 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) is, as of yet, unsupported.

#### 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) is, as of yet, unsupported.

## 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.

Category:

- GPD

Hidden category:

- Pages or sections flagged with Template:Laptop style