mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64
@ 2026-09-17  2:10 chipang_kao
  2026-09-17  2:10 ` [PATCH 1/2] platform/wmi: Remove X86 dependency for ACPI_WMI chipang_kao
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: chipang_kao @ 2026-09-17  2:10 UTC (permalink / raw)
  To: hansg, ilpo.jarvinen, bryan.odonoghue, W_Armin
  Cc: platform-driver-x86, linux-kernel, chipang_kao

This series enables ACPI WMI core support and the ASUS WMI platform
driver on ARM64 architectures.

ACPI WMI is not limited to x86 platforms. Modern ARM64 laptops and
platforms have adopted ACPI WMI to expose vendor-specific features
such as hotkeys and fan control.

To support these devices:
1. Removes the strict 'X86' dependency from CONFIG_ACPI_WMI.
2. Updates the ARM64 platform driver infrastructure to allow
   building the ASUS WMI driver without duplicating source code.

chipang_kao (2):
  platform/wmi: Remove X86 dependency for ACPI_WMI
  platform/arm64: Enable ASUS WMI driver support

 drivers/platform/arm64/Kconfig  | 46 +++++++++++++++++++++++++++++++++
 drivers/platform/arm64/Makefile |  2 ++
 drivers/platform/wmi/Kconfig    |  2 +-
 3 files changed, 49 insertions(+), 1 deletion(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/2] platform/wmi: Remove X86 dependency for ACPI_WMI
  2026-09-17  2:10 [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 chipang_kao
@ 2026-09-17  2:10 ` chipang_kao
  2026-09-17  2:10 ` [PATCH 2/2] platform/arm64: Enable ASUS WMI driver support chipang_kao
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 12+ messages in thread
From: chipang_kao @ 2026-09-17  2:10 UTC (permalink / raw)
  To: hansg, ilpo.jarvinen, bryan.odonoghue, W_Armin
  Cc: platform-driver-x86, linux-kernel, chipang_kao

Remove the 'X86' dependency from CONFIG_ACPI_WMI so that the WMI core
subsystem can be built and used on ARM64 systems with ACPI enabled.

Signed-off-by: chipang_kao <chipang_kao@asus.com>
---
 drivers/platform/wmi/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/wmi/Kconfig b/drivers/platform/wmi/Kconfig
index d62f51ff3b7f..36934b5f0194 100644
--- a/drivers/platform/wmi/Kconfig
+++ b/drivers/platform/wmi/Kconfig
@@ -5,7 +5,7 @@
 
 menuconfig ACPI_WMI
 	tristate "ACPI-WMI support"
-	depends on ACPI && X86
+	depends on ACPI
 	select NLS
 	help
 	  This option enables support for the ACPI-WMI driver core.
-- 
2.43.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 2/2] platform/arm64: Enable ASUS WMI driver support
  2026-09-17  2:10 [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 chipang_kao
  2026-09-17  2:10 ` [PATCH 1/2] platform/wmi: Remove X86 dependency for ACPI_WMI chipang_kao
@ 2026-09-17  2:10 ` chipang_kao
  2026-09-17  9:11   ` Ilpo Järvinen
  2026-09-17  9:03 ` [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 Ilpo Järvinen
  2026-09-18  7:38 ` Hans de Goede
  3 siblings, 1 reply; 12+ messages in thread
From: chipang_kao @ 2026-09-17  2:10 UTC (permalink / raw)
  To: hansg, ilpo.jarvinen, bryan.odonoghue, W_Armin
  Cc: platform-driver-x86, linux-kernel, chipang_kao

Wire up the Makefile to build drivers/platform/x86/asus-wmi.c
and asus-nb-wmi.c without duplicating driver source code.

Signed-off-by: chipang_kao <chipang_kao@asus.com>
---
 drivers/platform/arm64/Kconfig  | 46 +++++++++++++++++++++++++++++++++
 drivers/platform/arm64/Makefile |  2 ++
 2 files changed, 48 insertions(+)

diff --git a/drivers/platform/arm64/Kconfig b/drivers/platform/arm64/Kconfig
index e32e01b2a9bd..59aa389d9aab 100644
--- a/drivers/platform/arm64/Kconfig
+++ b/drivers/platform/arm64/Kconfig
@@ -103,4 +103,50 @@ config EC_QCOM_HAMOA
 
 	  This driver currently supports Hamoa/Purwa/Glymur reference devices.
 
+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
+	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
+
+	  If you have an ACPI-WMI compatible Asus Notebook, say Y or M
+	  here.
+
 endif # ARM64_PLATFORM_DEVICES
diff --git a/drivers/platform/arm64/Makefile b/drivers/platform/arm64/Makefile
index 7681be4a46e9..d608b2aa8c12 100644
--- a/drivers/platform/arm64/Makefile
+++ b/drivers/platform/arm64/Makefile
@@ -10,3 +10,5 @@ obj-$(CONFIG_EC_HUAWEI_GAOKUN)	+= huawei-gaokun-ec.o
 obj-$(CONFIG_EC_LENOVO_YOGA_C630) += lenovo-yoga-c630.o
 obj-$(CONFIG_EC_LENOVO_THINKPAD_T14S) += lenovo-thinkpad-t14s.o
 obj-$(CONFIG_EC_QCOM_HAMOA) += qcom-hamoa-ec.o
+obj-$(CONFIG_ASUS_WMI) += ../x86/asus-wmi.o
+obj-$(CONFIG_ASUS_NB_WMI) += ../x86/asus-nb-wmi.o
-- 
2.43.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64
  2026-09-17  2:10 [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 chipang_kao
  2026-09-17  2:10 ` [PATCH 1/2] platform/wmi: Remove X86 dependency for ACPI_WMI chipang_kao
  2026-09-17  2:10 ` [PATCH 2/2] platform/arm64: Enable ASUS WMI driver support chipang_kao
@ 2026-09-17  9:03 ` Ilpo Järvinen
  2026-09-18  7:38 ` Hans de Goede
  3 siblings, 0 replies; 12+ messages in thread
From: Ilpo Järvinen @ 2026-09-17  9:03 UTC (permalink / raw)
  To: chipang_kao, W_Armin
  Cc: Hans de Goede, bryan.odonoghue, platform-driver-x86, LKML, chipang_kao

On Thu, 17 Sep 2026, chipang_kao wrote:

> This series enables ACPI WMI core support and the ASUS WMI platform
> driver on ARM64 architectures.
> 
> ACPI WMI is not limited to x86 platforms. Modern ARM64 laptops and
> platforms have adopted ACPI WMI to expose vendor-specific features
> such as hotkeys and fan control.
> 
> To support these devices:
> 1. Removes the strict 'X86' dependency from CONFIG_ACPI_WMI.
> 2. Updates the ARM64 platform driver infrastructure to allow
>    building the ASUS WMI driver without duplicating source code.
> 
> chipang_kao (2):
>   platform/wmi: Remove X86 dependency for ACPI_WMI
>   platform/arm64: Enable ASUS WMI driver support
> 
>  drivers/platform/arm64/Kconfig  | 46 +++++++++++++++++++++++++++++++++
>  drivers/platform/arm64/Makefile |  2 ++
>  drivers/platform/wmi/Kconfig    |  2 +-
>  3 files changed, 49 insertions(+), 1 deletion(-)

Thanks, but there's already a series to this effect under discussion:

  https://lore.kernel.org/all/20260724025959.142826-1-W_Armin@gmx.de/

If you have some insight, please comment on that thread.

My hope is that the other series will be ready for merging within this 
kernel cycle.

-- 
 i.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/2] platform/arm64: Enable ASUS WMI driver support
  2026-09-17  2:10 ` [PATCH 2/2] platform/arm64: Enable ASUS WMI driver support chipang_kao
@ 2026-09-17  9:11   ` Ilpo Järvinen
  0 siblings, 0 replies; 12+ messages in thread
From: Ilpo Järvinen @ 2026-09-17  9:11 UTC (permalink / raw)
  To: chipang_kao
  Cc: Hans de Goede, bryan.odonoghue, W_Armin, platform-driver-x86,
	LKML, chipang_kao

On Thu, 17 Sep 2026, chipang_kao wrote:

> Wire up the Makefile to build drivers/platform/x86/asus-wmi.c
> and asus-nb-wmi.c without duplicating driver source code.
> 
> Signed-off-by: chipang_kao <chipang_kao@asus.com>
> ---
>  drivers/platform/arm64/Kconfig  | 46 +++++++++++++++++++++++++++++++++
>  drivers/platform/arm64/Makefile |  2 ++
>  2 files changed, 48 insertions(+)
> 
> diff --git a/drivers/platform/arm64/Kconfig b/drivers/platform/arm64/Kconfig
> index e32e01b2a9bd..59aa389d9aab 100644
> --- a/drivers/platform/arm64/Kconfig
> +++ b/drivers/platform/arm64/Kconfig
> @@ -103,4 +103,50 @@ config EC_QCOM_HAMOA
>  
>  	  This driver currently supports Hamoa/Purwa/Glymur reference devices.
>  
> +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
> +	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
> +
> +	  If you have an ACPI-WMI compatible Asus Notebook, say Y or M
> +	  here.

I only now notice the second patch is not covered by Armin's series.

But this duplicates Kconfig entries.

I suppose the best approach would be to split drivers/platform/x86/Kconfig 
into two and source the generic one here.

> +
>  endif # ARM64_PLATFORM_DEVICES
> diff --git a/drivers/platform/arm64/Makefile b/drivers/platform/arm64/Makefile
> index 7681be4a46e9..d608b2aa8c12 100644
> --- a/drivers/platform/arm64/Makefile
> +++ b/drivers/platform/arm64/Makefile
> @@ -10,3 +10,5 @@ obj-$(CONFIG_EC_HUAWEI_GAOKUN)	+= huawei-gaokun-ec.o
>  obj-$(CONFIG_EC_LENOVO_YOGA_C630) += lenovo-yoga-c630.o
>  obj-$(CONFIG_EC_LENOVO_THINKPAD_T14S) += lenovo-thinkpad-t14s.o
>  obj-$(CONFIG_EC_QCOM_HAMOA) += qcom-hamoa-ec.o
> +obj-$(CONFIG_ASUS_WMI) += ../x86/asus-wmi.o
> +obj-$(CONFIG_ASUS_NB_WMI) += ../x86/asus-nb-wmi.o
> 

-- 
 i.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64
  2026-09-17  2:10 [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 chipang_kao
                   ` (2 preceding siblings ...)
  2026-09-17  9:03 ` [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 Ilpo Järvinen
@ 2026-09-18  7:38 ` Hans de Goede
  2026-09-21  9:33   ` chipang_kao
                     ` (2 more replies)
  3 siblings, 3 replies; 12+ messages in thread
From: Hans de Goede @ 2026-09-18  7:38 UTC (permalink / raw)
  To: chipang_kao, ilpo.jarvinen, bryan.odonoghue, W_Armin
  Cc: platform-driver-x86, linux-kernel, chipang_kao

Hi,

On 17-Sep-26 04:10, chipang_kao wrote:
> This series enables ACPI WMI core support and the ASUS WMI platform
> driver on ARM64 architectures.
> 
> ACPI WMI is not limited to x86 platforms. Modern ARM64 laptops and
> platforms have adopted ACPI WMI to expose vendor-specific features
> such as hotkeys and fan control.
> 
> To support these devices:
> 1. Removes the strict 'X86' dependency from CONFIG_ACPI_WMI.
> 2. Updates the ARM64 platform driver infrastructure to allow
>    building the ASUS WMI driver without duplicating source code.

This cover-letter is missing some important information, namely
why do this.

Yes ACPI / WMI is used on some ARM64 laptops, but AFAIK all of
those are currently still booting through Devicetree since
the current generation ARM64 laptops is missing various info Linux
needs in the ACPI tables. So for a fully functional system 
Devicetree is necessary.

I think making the generic WMI code availabe on ARM64 is good
and this is something which Armin has already been working on.

But I wonder what the concrete use-case is to build the ASUS WMI
driver on ARM64.

Questions:

1. Has this been tested on an actual Asus ARM64 laptop or other
   ARM64 device? 

2. On which laptop/device model ?

3. How was this tested, how was the laptop booted; and does booting
   it this way lead to loosing any other functionality

4. Were any other kernel patches used during testing?

As for patch 2/2 I think that if we want this the driver should
simply be moved to platform/wmi .

Regards,

Hans



> 
> chipang_kao (2):
>   platform/wmi: Remove X86 dependency for ACPI_WMI
>   platform/arm64: Enable ASUS WMI driver support
> 
>  drivers/platform/arm64/Kconfig  | 46 +++++++++++++++++++++++++++++++++
>  drivers/platform/arm64/Makefile |  2 ++
>  drivers/platform/wmi/Kconfig    |  2 +-
>  3 files changed, 49 insertions(+), 1 deletion(-)
> 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64
  2026-09-18  7:38 ` Hans de Goede
@ 2026-09-21  9:33   ` chipang_kao
  2026-09-21 11:25     ` Hans de Goede
  2026-09-21  9:48   ` chipang_kao
  2026-09-22  3:21   ` [PATCH v3] " chipang_kao
  2 siblings, 1 reply; 12+ messages in thread
From: chipang_kao @ 2026-09-21  9:33 UTC (permalink / raw)
  To: hansg, bryan.odonoghue, ilpo.jarvinen, W_Armin
  Cc: platform-driver-x86, linux-kernel

Hi Bryan, Hans,

Thanks for the review and valuable feedback.

> On Thu, 17 Sep 2026 15:30:00 +0100, Bryan O'Donoghue <bryan.odonoghue@linaro.org> wrote:
> Thanks, but there's already a series to this effect under discussion:
>   https://lore.kernel.org/all/20260724025959.142826-1-W_Armin@gmx.de/
> 
> I only now notice the second patch is not covered by Armin's series.
> But this duplicates Kconfig entries.
> 
> I suppose the best approach would be to split drivers/platform/x86/Kconfig 
> into two and source the generic one here.

Thanks for pointing out Armin's series and the Kconfig duplication issue.
I had review Armin's series and make sure not to duplicate work. Regarding 
the driver location/Kconfig split, I agree that avoiding Kconfig duplication 
is necessary, and moving/refactoring the driver directly under platform/wmi 
(as Hans suggested below) seems to be the cleanest path forward.

> On Fri, 18 Sep 2026 09:38:04 +0200, Hans de Goede <hansg@kernel.org> wrote:
> Yes ACPI / WMI is used on some ARM64 laptops, but AFAIK all of
> those are currently still booting through Devicetree since
> the current generation ARM64 laptops is missing various info Linux
> needs in the ACPI tables. So for a fully functional system 
> Devicetree is necessary.
> ...
> Questions:
> 1. Has this been tested on an actual Asus ARM64 laptop or other
>    ARM64 device? 
> 2. On which laptop/device model ?
> 3. How was this tested, how was the laptop booted; and does booting
>    it this way lead to loosing any other functionality
> 4. Were any other kernel patches used during testing?

Regarding Hans's questions:

1. Yes, this has been tested on an actual ASUS ARM64 laptop.
2. This specific model has not been publicly released yet, so I
   cannot disclose the exact model name or marketing designation
   at this stage. However, it is an upcoming ARM64 platform 
   featuring ACPI firmware.
3. The laptop was booted natively via ACPI firmware (UEFI). To
   verify the WMI functionality without modifying the base
   distribution kernel, we built and tested the modules (`wmi.ko`,
   `asus-wmi.ko`, and `asus-nb-wmi.ko`) out-of-tree and loaded
   them using `insmod`. The driver successfully bound to the WMI
   devices exposed by the ACPI tables and functioned as expected.
4. No additional kernel patches were required. Note that we have
   dropped patch 1/2 from this series because Armin's patch series
   already removes the X86 dependency from drivers/platform/wmi/Kconfig.
   Since Armin's series is currently under discussion and not yet
   merged, our v2 will focus solely on moving the ASUS drivers to
   drivers/platform/wmi/asus/ while depending on the WMI updates.

> As for patch 2/2 I think that if we want this the driver should
> simply be moved to platform/wmi .

I agree with moving the driver to drivers/platform/wmi instead of 
duplicating it under drivers/platform/arm64. I will address this in v2 
patch.

Best regards,
Chipang

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2] platform/wmi: Move ASUS platform drivers from x86 to wmi/asus
  2026-09-18  7:38 ` Hans de Goede
  2026-09-21  9:33   ` chipang_kao
@ 2026-09-21  9:48   ` chipang_kao
  2026-09-22  3:21   ` [PATCH v3] " chipang_kao
  2 siblings, 0 replies; 12+ messages in thread
From: chipang_kao @ 2026-09-21  9:48 UTC (permalink / raw)
  To: hansg, ilpo.jarvinen, W_Armin
  Cc: corentin.chary, luke, denis.benato, jprvita, scardracs,
	bryan.odonoghue, platform-driver-x86, linux-kernel, chipang_kao

ASUS WMI and related platform drivers currently reside under
drivers/platform/x86/. However, with ARM64 devices utilizing ACPI WMI
interfaces, maintaining these drivers exclusively under x86 creates
unnecessary architectural restrictions and Kconfig duplications.

To allow ARM64 architectures to build and utilize ASUS WMI drivers
cleanly:
1. Relocate all ASUS platform drivers and headers from
   drivers/platform/x86/ to drivers/platform/wmi/asus/.
2. Create dedicated Kconfig and Makefile under
   drivers/platform/wmi/asus/ and source them in
   drivers/platform/wmi/Kconfig and Makefile.
3. Update drivers/platform/x86/Kconfig to remove duplicated entries
   and source the unified WMI-based ASUS configuration.

No functional code logic changes are introduced in this patch; this is
a pure code relocation and build infrastructure refactoring.

Signed-off-by: chipang_kao <chipang_kao@asus.com>
---

Changes in v2:
- Relocated ASUS platform drivers from drivers/platform/x86/ to
  drivers/platform/wmi/asus/ to eliminate Kconfig duplication and
  architectural restrictions for ARM64 platforms.
- Dropped patch 1/2 from the original series as CONFIG_ACPI_WMI
  dependency changes are covered by Armin's WMI refactoring series.
- Updated MAINTAINERS file to reflect the new path.

 MAINTAINERS                                   |   6 +-
 drivers/platform/wmi/Makefile                 |   1 +
 drivers/platform/wmi/asus/Kconfig             | 123 ++++++++++++++++++
 drivers/platform/wmi/asus/Makefile            |  12 ++
 .../platform/{x86 => wmi/asus}/asus-armoury.c |   0
 .../platform/{x86 => wmi/asus}/asus-armoury.h |   0
 .../platform/{x86 => wmi/asus}/asus-laptop.c  |   0
 .../platform/{x86 => wmi/asus}/asus-nb-wmi.c  |   0
 .../{x86 => wmi/asus}/asus-tf103c-dock.c      |   0
 .../{x86 => wmi/asus}/asus-wireless.c         |   0
 drivers/platform/{x86 => wmi/asus}/asus-wmi.c |   0
 drivers/platform/{x86 => wmi/asus}/asus-wmi.h |   0
 drivers/platform/x86/Kconfig                  | 117 -----------------
 13 files changed, 139 insertions(+), 120 deletions(-)
 create mode 100644 drivers/platform/wmi/asus/Kconfig
 create mode 100644 drivers/platform/wmi/asus/Makefile
 rename drivers/platform/{x86 => wmi/asus}/asus-armoury.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-armoury.h (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-laptop.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-nb-wmi.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-tf103c-dock.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-wireless.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-wmi.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-wmi.h (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index cc3cae2e378b..25e4030e24b9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4124,7 +4124,7 @@ M:	Denis Benato <denis.benato@linux.dev>
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
 W:	https://asus-linux.org/
-F:	drivers/platform/x86/asus*.c
+F:	drivers/platform/wmi/asus/asus*.c
 F:	drivers/platform/x86/eeepc*.c
 
 ASUS TF103C DOCK DRIVER
@@ -4132,7 +4132,7 @@ M:	Hans de Goede <hansg@kernel.org>
 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/wmi/asus/asus-tf103c-dock.c
 
 ASUS ROG RYUJIN AIO HARDWARE MONITOR DRIVER
 M:	Aleksa Savic <savicaleksa83@gmail.com>
@@ -4144,7 +4144,7 @@ ASUS WIRELESS RADIO CONTROL DRIVER
 M:	João Paulo Rechi Vita <jprvita@gmail.com>
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
-F:	drivers/platform/x86/asus-wireless.c
+F:	drivers/platform/wmi/asus/asus-wireless.c
 
 ASUS WMI HARDWARE MONITOR DRIVER
 M:	Ed Brindley <kernel@maidavale.org>
diff --git a/drivers/platform/wmi/Makefile b/drivers/platform/wmi/Makefile
index 2feff94a5594..305f4688324f 100644
--- a/drivers/platform/wmi/Makefile
+++ b/drivers/platform/wmi/Makefile
@@ -6,6 +6,7 @@
 
 wmi-y			:= core.o marshalling.o string.o
 obj-$(CONFIG_ACPI_WMI)	+= wmi.o
+obj-$(CONFIG_ASUS_WMI) += asus/
 
 # Unit tests
 obj-y			+= tests/
diff --git a/drivers/platform/wmi/asus/Kconfig b/drivers/platform/wmi/asus/Kconfig
new file mode 100644
index 000000000000..f7caf1450a5d
--- /dev/null
+++ b/drivers/platform/wmi/asus/Kconfig
@@ -0,0 +1,123 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Asus Platform Specific Drivers
+#
+
+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 <http://acpi4asus.sf.net>.
+
+	  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
+	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
+
+	  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.
+
+
diff --git a/drivers/platform/wmi/asus/Makefile b/drivers/platform/wmi/asus/Makefile
new file mode 100644
index 000000000000..0cee8db2d9d8
--- /dev/null
+++ b/drivers/platform/wmi/asus/Makefile
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for linux/drivers/platform/wmi/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
diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/wmi/asus/asus-armoury.c
similarity index 100%
rename from drivers/platform/x86/asus-armoury.c
rename to drivers/platform/wmi/asus/asus-armoury.c
diff --git a/drivers/platform/x86/asus-armoury.h b/drivers/platform/wmi/asus/asus-armoury.h
similarity index 100%
rename from drivers/platform/x86/asus-armoury.h
rename to drivers/platform/wmi/asus/asus-armoury.h
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/wmi/asus/asus-laptop.c
similarity index 100%
rename from drivers/platform/x86/asus-laptop.c
rename to drivers/platform/wmi/asus/asus-laptop.c
diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/wmi/asus/asus-nb-wmi.c
similarity index 100%
rename from drivers/platform/x86/asus-nb-wmi.c
rename to drivers/platform/wmi/asus/asus-nb-wmi.c
diff --git a/drivers/platform/x86/asus-tf103c-dock.c b/drivers/platform/wmi/asus/asus-tf103c-dock.c
similarity index 100%
rename from drivers/platform/x86/asus-tf103c-dock.c
rename to drivers/platform/wmi/asus/asus-tf103c-dock.c
diff --git a/drivers/platform/x86/asus-wireless.c b/drivers/platform/wmi/asus/asus-wireless.c
similarity index 100%
rename from drivers/platform/x86/asus-wireless.c
rename to drivers/platform/wmi/asus/asus-wireless.c
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/wmi/asus/asus-wmi.c
similarity index 100%
rename from drivers/platform/x86/asus-wmi.c
rename to drivers/platform/wmi/asus/asus-wmi.c
diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/wmi/asus/asus-wmi.h
similarity index 100%
rename from drivers/platform/x86/asus-wmi.h
rename to drivers/platform/wmi/asus/asus-wmi.h
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 957034f39e4e..257404b3fd44 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 <http://acpi4asus.sf.net>.
-
-	  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
-	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
-
-	  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
-- 
2.43.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64
  2026-09-21  9:33   ` chipang_kao
@ 2026-09-21 11:25     ` Hans de Goede
  2026-09-21 14:43       ` [PATCH v2] platform/wmi: Move ASUS platform drivers from x86 to wmi/asus Chipang_Kao
  0 siblings, 1 reply; 12+ messages in thread
From: Hans de Goede @ 2026-09-21 11:25 UTC (permalink / raw)
  To: chipang_kao, bryan.odonoghue, ilpo.jarvinen, W_Armin
  Cc: platform-driver-x86, linux-kernel

Hi,

On 21-Sep-26 11:33 AM, chipang_kao wrote:
> Hi Bryan, Hans,
> 
> Thanks for the review and valuable feedback.
> 
>> On Thu, 17 Sep 2026 15:30:00 +0100, Bryan O'Donoghue <bryan.odonoghue@linaro.org> wrote:
>> Thanks, but there's already a series to this effect under discussion:
>>   https://lore.kernel.org/all/20260724025959.142826-1-W_Armin@gmx.de/
>>
>> I only now notice the second patch is not covered by Armin's series.
>> But this duplicates Kconfig entries.
>>
>> I suppose the best approach would be to split drivers/platform/x86/Kconfig 
>> into two and source the generic one here.
> 
> Thanks for pointing out Armin's series and the Kconfig duplication issue.
> I had review Armin's series and make sure not to duplicate work. Regarding 
> the driver location/Kconfig split, I agree that avoiding Kconfig duplication 
> is necessary, and moving/refactoring the driver directly under platform/wmi 
> (as Hans suggested below) seems to be the cleanest path forward.
> 
>> On Fri, 18 Sep 2026 09:38:04 +0200, Hans de Goede <hansg@kernel.org> wrote:
>> Yes ACPI / WMI is used on some ARM64 laptops, but AFAIK all of
>> those are currently still booting through Devicetree since
>> the current generation ARM64 laptops is missing various info Linux
>> needs in the ACPI tables. So for a fully functional system 
>> Devicetree is necessary.
>> ...
>> Questions:
>> 1. Has this been tested on an actual Asus ARM64 laptop or other
>>    ARM64 device? 
>> 2. On which laptop/device model ?
>> 3. How was this tested, how was the laptop booted; and does booting
>>    it this way lead to loosing any other functionality
>> 4. Were any other kernel patches used during testing?
> 
> Regarding Hans's questions:
> 
> 1. Yes, this has been tested on an actual ASUS ARM64 laptop.
> 2. This specific model has not been publicly released yet, so I
>    cannot disclose the exact model name or marketing designation
>    at this stage. However, it is an upcoming ARM64 platform 
>    featuring ACPI firmware.
> 3. The laptop was booted natively via ACPI firmware (UEFI). To>    verify the WMI functionality without modifying the base
>    distribution kernel, we built and tested the modules (`wmi.ko`,
>    `asus-wmi.ko`, and `asus-nb-wmi.ko`) out-of-tree and loaded
>    them using `insmod`. The driver successfully bound to the WMI
>    devices exposed by the ACPI tables and functioned as expected.
> 4. No additional kernel patches were required. Note that we have
>    dropped patch 1/2 from this series because Armin's patch series
>    already removes the X86 dependency from drivers/platform/wmi/Kconfig.
>    Since Armin's series is currently under discussion and not yet
>    merged, our v2 will focus solely on moving the ASUS drivers to
>    drivers/platform/wmi/asus/ while depending on the WMI updates.

Thank you for your answers and this all sounds good to me.

Based on this I've no objections against this series.

Regards,

Hans



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2] platform/wmi: Move ASUS platform drivers from x86 to wmi/asus
  2026-09-21 11:25     ` Hans de Goede
@ 2026-09-21 14:43       ` Chipang_Kao
  2026-09-21 23:42         ` Denis Benato
  0 siblings, 1 reply; 12+ messages in thread
From: Chipang_Kao @ 2026-09-21 14:43 UTC (permalink / raw)
  To: hansg, ilpo.jarvinen, W_Armin
  Cc: corentin.chary, luke, denis.benato, jprvita, scardracs,
	bryan.odonoghue, platform-driver-x86, linux-kernel


> Thank you for your answers and this all sounds good to me.

> Based on this I've no objections against this series.

> Regards,


Hi Hans,

Please ignore this v2 patch. Only asus-armoury.c, asus-wmi.c, and asus-nb-wmi.c are 
WMI-based drivers. I will move only the pure WMI-based drivers into wmi/asus folder, 
and follow up with [PATCH v3] shortly.


Best regards,
Chipang Kao

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2] platform/wmi: Move ASUS platform drivers from x86 to wmi/asus
  2026-09-21 14:43       ` [PATCH v2] platform/wmi: Move ASUS platform drivers from x86 to wmi/asus Chipang_Kao
@ 2026-09-21 23:42         ` Denis Benato
  0 siblings, 0 replies; 12+ messages in thread
From: Denis Benato @ 2026-09-21 23:42 UTC (permalink / raw)
  To: Chipang_Kao, hansg, ilpo.jarvinen, W_Armin
  Cc: corentin.chary, luke, jprvita, scardracs, bryan.odonoghue,
	platform-driver-x86, linux-kernel


On 9/21/26 16:43, Chipang_Kao wrote:
>> Thank you for your answers and this all sounds good to me.
>> Based on this I've no objections against this series.
>> Regards,
>
> Hi Hans,
>
> Please ignore this v2 patch. Only asus-armoury.c, asus-wmi.c, and asus-nb-wmi.c are 
> WMI-based drivers. I will move only the pure WMI-based drivers into wmi/asus folder, 
> and follow up with [PATCH v3] shortly.
Hi Chinpang!

You may be be interested in reading this: https://lore.kernel.org/all/0ca263c3-7885-4a5c-bfe5-0e8e4d189666@linux.dev/ as there have been quite a few proposals to reorganize ASUS drivers, especially after the addition of the latest asus-armoury.

For me doesn't make much difference where files are (the priority is compiling wmi components on ARM because I suspect newer zenbooks have that) but I haven't seen Ilpo expressing himself yet about this.

I remain waiting for proposals.

Thank you very much,
Denis Benato

>
> Best regards,
> Chipang Kao

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v3] platform/wmi: Move ASUS platform drivers from x86 to wmi/asus
  2026-09-18  7:38 ` Hans de Goede
  2026-09-21  9:33   ` chipang_kao
  2026-09-21  9:48   ` chipang_kao
@ 2026-09-22  3:21   ` chipang_kao
  2 siblings, 0 replies; 12+ messages in thread
From: chipang_kao @ 2026-09-22  3:21 UTC (permalink / raw)
  To: hansg, ilpo.jarvinen, W_Armin
  Cc: corentin.chary, luke, denis.benato, scardracs,
	platform-driver-x86, linux-kernel, chipang_kao

ASUS WMI and related platform drivers currently reside under
drivers/platform/x86/. However, with ARM64 devices utilizing ACPI WMI
interfaces, maintaining these drivers exclusively under x86 creates
unnecessary architectural restrictions and Kconfig duplications.

To allow ARM64 architectures to build and utilize ASUS WMI drivers
cleanly:
1. Relocate all ASUS WMI-based drivers and headers from
   drivers/platform/x86/ to drivers/platform/wmi/asus/.
2. Create dedicated Kconfig and Makefile under
   drivers/platform/wmi/asus/ and source them in
   drivers/platform/wmi/Kconfig and Makefile.
3. Update drivers/platform/x86/Kconfig to remove duplicated entries
   and source the unified WMI-based ASUS configuration.

No functional code logic changes are introduced in this patch; this is
a pure code relocation and build infrastructure refactoring.

Signed-off-by: chipang_kao <chipang_kao@asus.com>
---

Changes in v3:
- Refined the file relocation scope to target ONLY pure WMI-based
  platform drivers (asus-wmi, asus-nb-wmi, and asus-armoury).
- Retained non-WMI x86 platform drivers (such as asus-laptop,
  asus-wireless, and asus-tf103c-dock) under drivers/platform/x86/.
- Updated drivers/platform/wmi/asus/Kconfig and Makefile to only build
  and export the relocated WMI components.
- Dropped patch 1/2 from the original series as CONFIG_ACPI_WMI
  dependency updates are handled by Armin's WMI refactoring series.

Changes in v2:
- Relocated ASUS platform drivers from drivers/platform/x86/ to
  drivers/platform/wmi/asus/ to eliminate Kconfig duplication and
  architectural restrictions for ARM64 platforms.
- Updated MAINTAINERS file to reflect the new path.

 MAINTAINERS                                   |  1 +
 drivers/platform/wmi/Kconfig                  |  1 +
 drivers/platform/wmi/Makefile                 |  1 +
 drivers/platform/wmi/asus/Kconfig             | 64 +++++++++++++++++++
 drivers/platform/wmi/asus/Makefile            |  9 +++
 .../platform/{x86 => wmi/asus}/asus-armoury.c |  0
 .../platform/{x86 => wmi/asus}/asus-armoury.h |  0
 .../platform/{x86 => wmi/asus}/asus-nb-wmi.c  |  0
 drivers/platform/{x86 => wmi/asus}/asus-wmi.c |  0
 drivers/platform/{x86 => wmi/asus}/asus-wmi.h |  0
 drivers/platform/x86/Kconfig                  | 58 -----------------
 drivers/platform/x86/Makefile                 |  3 -
 12 files changed, 76 insertions(+), 61 deletions(-)
 create mode 100644 drivers/platform/wmi/asus/Kconfig
 create mode 100644 drivers/platform/wmi/asus/Makefile
 rename drivers/platform/{x86 => wmi/asus}/asus-armoury.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-armoury.h (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-nb-wmi.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-wmi.c (100%)
 rename drivers/platform/{x86 => wmi/asus}/asus-wmi.h (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index cc3cae2e378b..2e4fa6812093 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4124,6 +4124,7 @@ M:	Denis Benato <denis.benato@linux.dev>
 L:	platform-driver-x86@vger.kernel.org
 S:	Maintained
 W:	https://asus-linux.org/
+F:	drivers/platform/wmi/asus/asus*.c
 F:	drivers/platform/x86/asus*.c
 F:	drivers/platform/x86/eeepc*.c
 
diff --git a/drivers/platform/wmi/Kconfig b/drivers/platform/wmi/Kconfig
index d62f51ff3b7f..acce8e9b7264 100644
--- a/drivers/platform/wmi/Kconfig
+++ b/drivers/platform/wmi/Kconfig
@@ -33,5 +33,6 @@ config ACPI_WMI_LEGACY_DEVICE_NAMES
 	  the same GUID to fail in some corner cases.
 
 source "drivers/platform/wmi/tests/Kconfig"
+source "drivers/platform/wmi/asus/Kconfig"
 
 endif # ACPI_WMI
diff --git a/drivers/platform/wmi/Makefile b/drivers/platform/wmi/Makefile
index 2feff94a5594..305f4688324f 100644
--- a/drivers/platform/wmi/Makefile
+++ b/drivers/platform/wmi/Makefile
@@ -6,6 +6,7 @@
 
 wmi-y			:= core.o marshalling.o string.o
 obj-$(CONFIG_ACPI_WMI)	+= wmi.o
+obj-$(CONFIG_ASUS_WMI) += asus/
 
 # Unit tests
 obj-y			+= tests/
diff --git a/drivers/platform/wmi/asus/Kconfig b/drivers/platform/wmi/asus/Kconfig
new file mode 100644
index 000000000000..75b6dd45af66
--- /dev/null
+++ b/drivers/platform/wmi/asus/Kconfig
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Asus Platform Specific Drivers
+#
+
+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
+	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
+
+	  If you have an ACPI-WMI compatible Asus Notebook, say Y or M
+	  here.
+
+
diff --git a/drivers/platform/wmi/asus/Makefile b/drivers/platform/wmi/asus/Makefile
new file mode 100644
index 000000000000..8daa5ebff89f
--- /dev/null
+++ b/drivers/platform/wmi/asus/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for linux/drivers/platform/wmi/asus
+# Asus Platform-Specific Drivers
+#
+
+obj-$(CONFIG_ASUS_ARMOURY)	+= asus-armoury.o
+obj-$(CONFIG_ASUS_WMI)		+= asus-wmi.o
+obj-$(CONFIG_ASUS_NB_WMI)	+= asus-nb-wmi.o
diff --git a/drivers/platform/x86/asus-armoury.c b/drivers/platform/wmi/asus/asus-armoury.c
similarity index 100%
rename from drivers/platform/x86/asus-armoury.c
rename to drivers/platform/wmi/asus/asus-armoury.c
diff --git a/drivers/platform/x86/asus-armoury.h b/drivers/platform/wmi/asus/asus-armoury.h
similarity index 100%
rename from drivers/platform/x86/asus-armoury.h
rename to drivers/platform/wmi/asus/asus-armoury.h
diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/wmi/asus/asus-nb-wmi.c
similarity index 100%
rename from drivers/platform/x86/asus-nb-wmi.c
rename to drivers/platform/wmi/asus/asus-nb-wmi.c
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/wmi/asus/asus-wmi.c
similarity index 100%
rename from drivers/platform/x86/asus-wmi.c
rename to drivers/platform/wmi/asus/asus-wmi.c
diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/wmi/asus/asus-wmi.h
similarity index 100%
rename from drivers/platform/x86/asus-wmi.h
rename to drivers/platform/wmi/asus/asus-wmi.h
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 957034f39e4e..68cf99de415d 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -253,64 +253,6 @@ config ASUS_WIRELESS
 	  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
-	  <file:Documentation/ABI/testing/sysfs-platform-asus-wmi>
-
-	  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
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
index 872ac3842391..0bacd55f2fce 100644
--- a/drivers/platform/x86/Makefile
+++ b/drivers/platform/x86/Makefile
@@ -33,9 +33,6 @@ 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
-- 
2.43.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-09-22  3:22 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-17  2:10 [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 chipang_kao
2026-09-17  2:10 ` [PATCH 1/2] platform/wmi: Remove X86 dependency for ACPI_WMI chipang_kao
2026-09-17  2:10 ` [PATCH 2/2] platform/arm64: Enable ASUS WMI driver support chipang_kao
2026-09-17  9:11   ` Ilpo Järvinen
2026-09-17  9:03 ` [PATCH 0/2] platform: Enable ACPI WMI and ASUS WMI driver for ARM64 Ilpo Järvinen
2026-09-18  7:38 ` Hans de Goede
2026-09-21  9:33   ` chipang_kao
2026-09-21 11:25     ` Hans de Goede
2026-09-21 14:43       ` [PATCH v2] platform/wmi: Move ASUS platform drivers from x86 to wmi/asus Chipang_Kao
2026-09-21 23:42         ` Denis Benato
2026-09-21  9:48   ` chipang_kao
2026-09-22  3:21   ` [PATCH v3] " chipang_kao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®