New kernel patches, new generation

It has been quite a while since the last update from me (fluke).

As seems to be typical so far, ASUS has released a new generation of machines with a new generation of issues. Most of the time these can be very easy to fix - things like new keyboard identifiers, or key scancodes, or even new WMI methods (in ACPI).


🔗HID driver patches:

LKML patch series

This patch series adds the Z13 laptop keyboard identifier, some new keys, and does a small tidy up of some code.

🔗Sound quirks:

LKML patch series

This adds another quirk for the GU603 (2022 M16) Realtek codec. Looks like there can be more than one version of the codec in a model range. Fortunately this was a quick fix since nothing else appears to have changed.

🔗WMI - Screenpad support

V1 LKML patch series V2 LKML patch series V3 LKML patch series

The initial patch here was to add two new sysfs platform entries

  • /sys/devices/platform/asus-nb-wmi/screenpad_brightness
  • /sys/devices/platform/asus-nb-wmi/screenpad_enable

but as mentioned in a reply to the patch, adding as a proper backlight would be better.

So I spent a day of time rewriting the entire thing, and with the help of a very kind tester I think the resulting patch is perfect. There is now a new backlight device under /sys/class/backlight/asus_screenpad which can be controlled using all standard methods.

Update: I need to submit a v4 as I made a mistake where if the screenpad power is off the dev struct is dereferenced before being initialised (thanks C).

🔗Feature enablement

LKML patch series

This patch series adds or exposes more features that are available in the ROG laptop series.

  • expose dGPU and CPU tunables for ROG
    • These are things like GPU boost, CPU Pl1 and PL2, package power limits
  • support setting mini-LED mode
    • Some newer laptops have a screen that can toggle between regular style backlight and using mini-LED backlight
  • add WMI method to show if egpu connected
    • This WMI method can be monitored/queried to see if it is possible to begin the change-over to eGPU
  • support middle fan custom curves
    • Some newer laptops have a center/middle fan which blows across the CPU and GPU
  • add support for showing middle fan RPM
  • add support for showing charger mode (AC, USB-C, both plugged)
  • add additional checks to GPU switching code
    • These try to prevent a sceanrio such as the user disabling the dGPU while it is driving the internal panel via MUX, resulting in no output at all. There are no checks in the ACPI code for this, but on some newer models ASUS did finally add a switch in the BIOS menu. It is best to try and prevent this at the kernel level rather than userland level.

I need to update one patch in this series to correctly name the dGPU and CPU tunables.


This year sound is... consistent across almost all the range. So far what is required is:

  1. An ssdt patch to add the missing _DSD (device specific data) containing the Cirrus amplifier properties
  2. A kernel patch to add the required quirk to enable either the I2C connected amp, or an SPI connected amp

I will be writing a short guide to add to the website later to help people enable sound if required. But this may not be a very convenient thing as I am trying to work with both ASUS and Cirrus folks to get this corrected in a way that is safe. the ideal solution would be to add the missing properties to the ACPI, but this is unlikely to happen, and it's not just ASUS doing this either - I'm unsure what the exact solution will be but it is certainly being worked on.

Has this post helped you?

If this site helps you and you want to contribute we welcome you to help with development, search for issues, join the discord, and add to this website.

You can also donate

Your support on Pateron helps us buy ASUS devices for development to support new features and drivers.