On Fri, 6 Nov 2026, chipang_kao wrote: > ASUS WMI and related platform drivers currently reside under > drivers/platform/x86/. However, with the emergence of ARM64 devices > utilizing ACPI WMI interfaces, maintaining these drivers exclusively > under x86 creates unnecessary architectural restrictions and Kconfig > duplications. > > To allow non-x86 architectures (such as ARM64) to select and build > the applicable ASUS platform drivers: > 1. Relocate all ASUS platform drivers and headers from > drivers/platform/x86/ to drivers/platform/asus/. > 2. Create dedicated Kconfig and Makefile under drivers/platform/asus/. > 3. Update drivers/platform/x86/Kconfig to remove duplicated entries. > > Signed-off-by: chipang_kao Hi, Thanks but please use your real name to sign off the patches. I'm quite sure you don't sign any contracts, etc. with an underscore in your name. ;-) Basically, use the name you'd use to sign contract, etc. for Signed-off-by tags too. Also non-ascii characters are perfectly fine if you prefer using them for signing off as long as the email encoding is properly set so the tools can reproduce the name correctly. To understand what signing off a patch means, check Documentation/process/submitting-patches.rst . It would also be preferrable for From and Signed-off-by identities match, if you want to have the patch discussions into some other address besides the one used in SoB, you can always use Cc tag for those addresses. If you're sending from a different address than SoB uses, you can add extra From: into the start of the body so the tools will pick that from there instead of the email's From. -- i. > --- > Changes in v4: > - Move all ASUS platform drivers and headers from > drivers/platform/x86/ to drivers/platform/asus/. > - Add a dedicated Kconfig and Makefile under drivers/platform/asus/. > - Keep x86-specific drivers under the X86_PLATFORM_DEVICES > dependency. > - Move ASUS_WMI, ASUS_NB_WMI, and ASUS_ARMOURY outside the > X86_PLATFORM_DEVICES dependency to allow them to be selected on > non-x86 architectures such as ARM64. > - Update drivers/platform/Kconfig, drivers/platform/Makefile, and > MAINTAINERS for the new location. > > MAINTAINERS | 8 +- > drivers/platform/Kconfig | 2 + > drivers/platform/Makefile | 1 + > drivers/platform/asus/Kconfig | 163 ++++++++++++++++++ > drivers/platform/asus/Makefile | 15 ++ > drivers/platform/{x86 => asus}/asus-armoury.c | 0 > drivers/platform/{x86 => asus}/asus-armoury.h | 0 > drivers/platform/{x86 => asus}/asus-laptop.c | 0 > drivers/platform/{x86 => asus}/asus-nb-wmi.c | 0 > .../platform/{x86 => asus}/asus-tf103c-dock.c | 0 > .../platform/{x86 => asus}/asus-wireless.c | 0 > drivers/platform/{x86 => asus}/asus-wmi.c | 0 > drivers/platform/{x86 => asus}/asus-wmi.h | 0 > drivers/platform/{x86 => asus}/eeepc-laptop.c | 0 > drivers/platform/{x86 => asus}/eeepc-wmi.c | 0 > drivers/platform/x86/Kconfig | 152 ---------------- > drivers/platform/x86/Makefile | 10 -- > 17 files changed, 185 insertions(+), 166 deletions(-) > create mode 100644 drivers/platform/asus/Kconfig > create mode 100644 drivers/platform/asus/Makefile > rename drivers/platform/{x86 => asus}/asus-armoury.c (100%) > rename drivers/platform/{x86 => asus}/asus-armoury.h (100%) > rename drivers/platform/{x86 => asus}/asus-laptop.c (100%) > rename drivers/platform/{x86 => asus}/asus-nb-wmi.c (100%) > rename drivers/platform/{x86 => asus}/asus-tf103c-dock.c (100%) > rename drivers/platform/{x86 => asus}/asus-wireless.c (100%) > rename drivers/platform/{x86 => asus}/asus-wmi.c (100%) > rename drivers/platform/{x86 => asus}/asus-wmi.h (100%) > rename drivers/platform/{x86 => asus}/eeepc-laptop.c (100%) > rename drivers/platform/{x86 => asus}/eeepc-wmi.c (100%) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 93abbb315065..832d2528be10 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -4226,15 +4226,15 @@ M: Denis Benato > L: platform-driver-x86@vger.kernel.org > S: Maintained > W: https://asus-linux.org/ > -F: drivers/platform/x86/asus*.c > -F: drivers/platform/x86/eeepc*.c > +F: drivers/platform/asus/asus*.c > +F: drivers/platform/asus/eeepc*.c > > ASUS TF103C DOCK DRIVER > M: Hans de Goede > L: platform-driver-x86@vger.kernel.org > S: Maintained > T: git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git > -F: drivers/platform/x86/asus-tf103c-dock.c > +F: drivers/platform/asus/asus-tf103c-dock.c > > ASUS ROG RYUJIN AIO HARDWARE MONITOR DRIVER > M: Aleksa Savic > @@ -4246,7 +4246,7 @@ ASUS WIRELESS RADIO CONTROL DRIVER > M: Joćo Paulo Rechi Vita > L: platform-driver-x86@vger.kernel.org > S: Maintained > -F: drivers/platform/x86/asus-wireless.c > +F: drivers/platform/asus/asus-wireless.c > > ASUS WMI HARDWARE MONITOR DRIVER > M: Ed Brindley > diff --git a/drivers/platform/Kconfig b/drivers/platform/Kconfig > index 312788f249c9..aa004b0e4406 100644 > --- a/drivers/platform/Kconfig > +++ b/drivers/platform/Kconfig > @@ -22,3 +22,5 @@ source "drivers/platform/arm64/Kconfig" > source "drivers/platform/raspberrypi/Kconfig" > > source "drivers/platform/wmi/Kconfig" > + > +source "drivers/platform/asus/Kconfig" > diff --git a/drivers/platform/Makefile b/drivers/platform/Makefile > index fa322e7f8716..34e694e6da14 100644 > --- a/drivers/platform/Makefile > +++ b/drivers/platform/Makefile > @@ -15,3 +15,4 @@ obj-$(CONFIG_SURFACE_PLATFORMS) += surface/ > obj-$(CONFIG_ARM64_PLATFORM_DEVICES) += arm64/ > obj-$(CONFIG_BCM2835_VCHIQ) += raspberrypi/ > obj-$(CONFIG_ACPI_WMI) += wmi/ > +obj-y += asus/ > diff --git a/drivers/platform/asus/Kconfig b/drivers/platform/asus/Kconfig > new file mode 100644 > index 000000000000..984f25ee84f5 > --- /dev/null > +++ b/drivers/platform/asus/Kconfig > @@ -0,0 +1,163 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +# > +# Asus Platform Specific Drivers > +# > + > +if X86_PLATFORM_DEVICES > + > +config ASUS_LAPTOP > + tristate "Asus Laptop Extras" > + depends on ACPI > + select LEDS_CLASS > + select NEW_LEDS > + depends on BACKLIGHT_CLASS_DEVICE > + depends on INPUT > + depends on RFKILL || RFKILL = n > + depends on ACPI_VIDEO || ACPI_VIDEO = n > + select INPUT_SPARSEKMAP > + help > + This is a driver for Asus laptops, Lenovo SL and the Pegatron > + Lucid tablet. It may also support some MEDION, JVC or VICTOR > + laptops. It makes all the extra buttons generate standard > + ACPI events and input events, and on the Lucid the built-in > + accelerometer appears as an input device. It also adds > + support for video output switching, LCD backlight control, > + Bluetooth and Wlan control, and most importantly, allows you > + to blink those fancy LEDs. > + > + For more information see . > + > + If you have an ACPI-compatible ASUS laptop, say Y or M here. > + > +config ASUS_WIRELESS > + tristate "Asus Wireless Radio Control Driver" > + depends on ACPI > + depends on INPUT > + select NEW_LEDS > + select LEDS_CLASS > + help > + The Asus Wireless Radio Control handles the airplane mode hotkey > + present on some Asus laptops. > + > + Say Y or M here if you have an ASUS notebook with an airplane mode > + hotkey. > + > + If you choose to compile this driver as a module the module will be > + called asus-wireless. > + > +config ASUS_TF103C_DOCK > + tristate "Asus TF103C 2-in-1 keyboard dock" > + depends on ACPI > + depends on I2C > + depends on INPUT > + depends on HID > + depends on GPIOLIB > + help > + This is a driver for the keyboard, touchpad and USB port of the > + keyboard dock for the Asus TF103C 2-in-1 tablet. > + > + This keyboard dock has its own I2C attached embedded controller > + and the keyboard and touchpad are also connected over I2C, > + instead of using the usual USB connection. This means that the > + keyboard dock requires this special driver to function. > + > + If you have an Asus TF103C tablet say Y or M here, for a generic x86 > + distro config say M here. > + > +config EEEPC_WMI > + tristate "Eee PC WMI Driver" > + depends on ASUS_WMI > + help > + This is a driver for newer Eee PC laptops. It adds extra features > + like wireless radio and bluetooth control, leds, hotkeys, backlight... > + > + For more information, see > + > + > + If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M > + here. > + > +config EEEPC_LAPTOP > + tristate "Eee PC Hotkey Driver" > + depends on ACPI_EC > + depends on INPUT > + depends on RFKILL || RFKILL = n > + depends on ACPI_VIDEO || ACPI_VIDEO = n > + depends on HOTPLUG_PCI > + depends on BACKLIGHT_CLASS_DEVICE > + select HWMON > + select LEDS_CLASS > + select NEW_LEDS > + select INPUT_SPARSEKMAP > + help > + This driver supports the Fn-Fx keys on Eee PC laptops. > + > + It also gives access to some extra laptop functionalities like > + Bluetooth, backlight and allows powering on/off some other > + devices. > + > + If you have an Eee PC laptop, say Y or M here. If this driver > + doesn't work on your Eee PC, try eeepc-wmi instead. > + > +endif # X86_PLATFORM_DEVICES > + > +config ASUS_ARMOURY > + tristate "ASUS Armoury driver" > + depends on ASUS_WMI > + select FW_ATTR_CLASS > + help > + Say Y here if you have a WMI aware Asus machine and would like to use the > + firmware_attributes API to control various settings typically exposed in > + the ASUS Armoury Crate application available on Windows. > + > + To compile this driver as a module, choose M here: the module will > + be called asus-armoury. > + > +config ASUS_WMI > + tristate "ASUS WMI Driver" > + depends on ACPI_WMI > + depends on ACPI_BATTERY > + depends on INPUT > + depends on HWMON > + depends on BACKLIGHT_CLASS_DEVICE > + depends on RFKILL || RFKILL = n > + depends on HOTPLUG_PCI > + depends on ACPI_VIDEO || ACPI_VIDEO = n > + depends on SERIO_I8042 || SERIO_I8042 = n > + select INPUT_SPARSEKMAP > + select LEDS_CLASS > + select NEW_LEDS > + select ACPI_PLATFORM_PROFILE > + help > + Say Y here if you have a WMI aware Asus laptop (like Eee PCs or new > + Asus Notebooks). > + > + To compile this driver as a module, choose M here: the module will > + be called asus-wmi. > + > +config ASUS_WMI_DEPRECATED_ATTRS > + bool "BIOS option support in WMI platform (DEPRECATED)" > + depends on ASUS_WMI > + default y > + help > + Say Y to expose the configurable BIOS options through the asus-wmi > + driver. > + > + This can be used with or without the asus-armoury driver which > + has the same attributes, but more, and better features. > + > +config ASUS_NB_WMI > + tristate "Asus Notebook WMI Driver" > + depends on ASUS_WMI > + help > + This is a driver for newer Asus notebooks. It adds extra features > + like wireless radio and bluetooth control, leds, hotkeys, backlight... > + > + For more information, see > + > + > + If you have an ACPI-WMI compatible Asus Notebook, say Y or M > + here. > + > + > + > diff --git a/drivers/platform/asus/Makefile b/drivers/platform/asus/Makefile > new file mode 100644 > index 000000000000..d3b5c4fc2ca6 > --- /dev/null > +++ b/drivers/platform/asus/Makefile > @@ -0,0 +1,15 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# > +# Makefile for linux/drivers/platform/asus > +# Asus Platform-Specific Drivers > +# > + > +obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o > +obj-$(CONFIG_ASUS_WIRELESS) += asus-wireless.o > +obj-$(CONFIG_ASUS_ARMOURY) += asus-armoury.o > +obj-$(CONFIG_ASUS_WMI) += asus-wmi.o > +obj-$(CONFIG_ASUS_NB_WMI) += asus-nb-wmi.o > +obj-$(CONFIG_ASUS_TF103C_DOCK) += asus-tf103c-dock.o > +obj-$(CONFIG_EEEPC_LAPTOP) += eeepc-laptop.o > +obj-$(CONFIG_EEEPC_WMI) += eeepc-wmi.o > + > diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/asus/asus-armoury.c > similarity index 100% > rename from drivers/platform/x86/asus-armoury.c > rename to drivers/platform/asus/asus-armoury.c > diff --git a/drivers/platform/x86/asus-armoury.h b/drivers/platform/asus/asus-armoury.h > similarity index 100% > rename from drivers/platform/x86/asus-armoury.h > rename to drivers/platform/asus/asus-armoury.h > diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/asus/asus-laptop.c > similarity index 100% > rename from drivers/platform/x86/asus-laptop.c > rename to drivers/platform/asus/asus-laptop.c > diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/asus/asus-nb-wmi.c > similarity index 100% > rename from drivers/platform/x86/asus-nb-wmi.c > rename to drivers/platform/asus/asus-nb-wmi.c > diff --git a/drivers/platform/x86/asus-tf103c-dock.c b/drivers/platform/asus/asus-tf103c-dock.c > similarity index 100% > rename from drivers/platform/x86/asus-tf103c-dock.c > rename to drivers/platform/asus/asus-tf103c-dock.c > diff --git a/drivers/platform/x86/asus-wireless.c b/drivers/platform/asus/asus-wireless.c > similarity index 100% > rename from drivers/platform/x86/asus-wireless.c > rename to drivers/platform/asus/asus-wireless.c > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/asus/asus-wmi.c > similarity index 100% > rename from drivers/platform/x86/asus-wmi.c > rename to drivers/platform/asus/asus-wmi.c > diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/asus/asus-wmi.h > similarity index 100% > rename from drivers/platform/x86/asus-wmi.h > rename to drivers/platform/asus/asus-wmi.h > diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/asus/eeepc-laptop.c > similarity index 100% > rename from drivers/platform/x86/eeepc-laptop.c > rename to drivers/platform/asus/eeepc-laptop.c > diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/asus/eeepc-wmi.c > similarity index 100% > rename from drivers/platform/x86/eeepc-wmi.c > rename to drivers/platform/asus/eeepc-wmi.c > diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig > index 9ce384e0475e..b2c6cc923694 100644 > --- a/drivers/platform/x86/Kconfig > +++ b/drivers/platform/x86/Kconfig > @@ -213,123 +213,6 @@ config APPLE_GMUX > graphics as well as the backlight. Currently only backlight > control is supported by the driver. > > -config ASUS_LAPTOP > - tristate "Asus Laptop Extras" > - depends on ACPI > - select LEDS_CLASS > - select NEW_LEDS > - depends on BACKLIGHT_CLASS_DEVICE > - depends on INPUT > - depends on RFKILL || RFKILL = n > - depends on ACPI_VIDEO || ACPI_VIDEO = n > - select INPUT_SPARSEKMAP > - help > - This is a driver for Asus laptops, Lenovo SL and the Pegatron > - Lucid tablet. It may also support some MEDION, JVC or VICTOR > - laptops. It makes all the extra buttons generate standard > - ACPI events and input events, and on the Lucid the built-in > - accelerometer appears as an input device. It also adds > - support for video output switching, LCD backlight control, > - Bluetooth and Wlan control, and most importantly, allows you > - to blink those fancy LEDs. > - > - For more information see . > - > - If you have an ACPI-compatible ASUS laptop, say Y or M here. > - > -config ASUS_WIRELESS > - tristate "Asus Wireless Radio Control Driver" > - depends on ACPI > - depends on INPUT > - select NEW_LEDS > - select LEDS_CLASS > - help > - The Asus Wireless Radio Control handles the airplane mode hotkey > - present on some Asus laptops. > - > - Say Y or M here if you have an ASUS notebook with an airplane mode > - hotkey. > - > - If you choose to compile this driver as a module the module will be > - called asus-wireless. > - > -config ASUS_ARMOURY > - tristate "ASUS Armoury driver" > - depends on ASUS_WMI > - select FW_ATTR_CLASS > - help > - Say Y here if you have a WMI aware Asus machine and would like to use the > - firmware_attributes API to control various settings typically exposed in > - the ASUS Armoury Crate application available on Windows. > - > - To compile this driver as a module, choose M here: the module will > - be called asus-armoury. > - > -config ASUS_WMI > - tristate "ASUS WMI Driver" > - depends on ACPI_WMI > - depends on ACPI_BATTERY > - depends on INPUT > - depends on HWMON > - depends on BACKLIGHT_CLASS_DEVICE > - depends on RFKILL || RFKILL = n > - depends on HOTPLUG_PCI > - depends on ACPI_VIDEO || ACPI_VIDEO = n > - depends on SERIO_I8042 || SERIO_I8042 = n > - select INPUT_SPARSEKMAP > - select LEDS_CLASS > - select NEW_LEDS > - select ACPI_PLATFORM_PROFILE > - help > - Say Y here if you have a WMI aware Asus laptop (like Eee PCs or new > - Asus Notebooks). > - > - To compile this driver as a module, choose M here: the module will > - be called asus-wmi. > - > -config ASUS_WMI_DEPRECATED_ATTRS > - bool "BIOS option support in WMI platform (DEPRECATED)" > - depends on ASUS_WMI > - default y > - help > - Say Y to expose the configurable BIOS options through the asus-wmi > - driver. > - > - This can be used with or without the asus-armoury driver which > - has the same attributes, but more, and better features. > - > -config ASUS_NB_WMI > - tristate "Asus Notebook WMI Driver" > - depends on ASUS_WMI > - help > - This is a driver for newer Asus notebooks. It adds extra features > - like wireless radio and bluetooth control, leds, hotkeys, backlight... > - > - For more information, see > - > - > - If you have an ACPI-WMI compatible Asus Notebook, say Y or M > - here. > - > -config ASUS_TF103C_DOCK > - tristate "Asus TF103C 2-in-1 keyboard dock" > - depends on ACPI > - depends on I2C > - depends on INPUT > - depends on HID > - depends on GPIOLIB > - help > - This is a driver for the keyboard, touchpad and USB port of the > - keyboard dock for the Asus TF103C 2-in-1 tablet. > - > - This keyboard dock has its own I2C attached embedded controller > - and the keyboard and touchpad are also connected over I2C, > - instead of using the usual USB connection. This means that the > - keyboard dock requires this special driver to function. > - > - If you have an Asus TF103C tablet say Y or M here, for a generic x86 > - distro config say M here. > - > config AYANEO_EC > tristate "Ayaneo EC platform control" > depends on DMI > @@ -357,41 +240,6 @@ config MERAKI_MX100 > To compile this driver as a module, choose M here: the module > will be called meraki-mx100. > > -config EEEPC_LAPTOP > - tristate "Eee PC Hotkey Driver" > - depends on ACPI_EC > - depends on INPUT > - depends on RFKILL || RFKILL = n > - depends on ACPI_VIDEO || ACPI_VIDEO = n > - depends on HOTPLUG_PCI > - depends on BACKLIGHT_CLASS_DEVICE > - select HWMON > - select LEDS_CLASS > - select NEW_LEDS > - select INPUT_SPARSEKMAP > - help > - This driver supports the Fn-Fx keys on Eee PC laptops. > - > - It also gives access to some extra laptop functionalities like > - Bluetooth, backlight and allows powering on/off some other > - devices. > - > - If you have an Eee PC laptop, say Y or M here. If this driver > - doesn't work on your Eee PC, try eeepc-wmi instead. > - > -config EEEPC_WMI > - tristate "Eee PC WMI Driver" > - depends on ASUS_WMI > - help > - This is a driver for newer Eee PC laptops. It adds extra features > - like wireless radio and bluetooth control, leds, hotkeys, backlight... > - > - For more information, see > - > - > - If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M > - here. > - > source "drivers/platform/x86/dell/Kconfig" > > config AMILO_RFKILL > diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile > index 229057234d00..88f45e03ee19 100644 > --- a/drivers/platform/x86/Makefile > +++ b/drivers/platform/x86/Makefile > @@ -28,16 +28,6 @@ obj-$(CONFIG_ADV_SWBUTTON) += adv_swbutton.o > # Apple > obj-$(CONFIG_APPLE_GMUX) += apple-gmux.o > > -# ASUS > -obj-$(CONFIG_ASUS_LAPTOP) += asus-laptop.o > -obj-$(CONFIG_ASUS_WIRELESS) += asus-wireless.o > -obj-$(CONFIG_ASUS_ARMOURY) += asus-armoury.o > -obj-$(CONFIG_ASUS_WMI) += asus-wmi.o > -obj-$(CONFIG_ASUS_NB_WMI) += asus-nb-wmi.o > -obj-$(CONFIG_ASUS_TF103C_DOCK) += asus-tf103c-dock.o > -obj-$(CONFIG_EEEPC_LAPTOP) += eeepc-laptop.o > -obj-$(CONFIG_EEEPC_WMI) += eeepc-wmi.o > - > # Ayaneo > obj-$(CONFIG_AYANEO_EC) += ayaneo-ec.o > > -- i.