2021-02-03 20:02:12

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v2] platform/x86: Move all dell drivers to their own subdirectory

A user without a Dell system doesn't need to pick any of these
drivers.

Users with a Dell system can enable this submenu and all drivers
behind it will be enabled.

Suggested-by: Andy Shevchenko <[email protected]>
Signed-off-by: Mario Limonciello <[email protected]>
---
Changes from v1->v2:
- Rename menu per Andy's suggestion
- Move if/endif for menu into subdirectory
- Set default for menu to "n" but individual modules to "m"
Should be same defaults as previous, but allow an "easy" switch
MAINTAINERS | 22 +-
drivers/platform/x86/Kconfig | 176 +--------------
drivers/platform/x86/Makefile | 16 +-
drivers/platform/x86/dell/Kconfig | 207 ++++++++++++++++++
drivers/platform/x86/dell/Makefile | 21 ++
.../platform/x86/{ => dell}/alienware-wmi.c | 0
drivers/platform/x86/{ => dell}/dcdbas.c | 0
drivers/platform/x86/{ => dell}/dcdbas.h | 0
drivers/platform/x86/{ => dell}/dell-laptop.c | 0
drivers/platform/x86/{ => dell}/dell-rbtn.c | 0
drivers/platform/x86/{ => dell}/dell-rbtn.h | 0
.../x86/{ => dell}/dell-smbios-base.c | 0
.../platform/x86/{ => dell}/dell-smbios-smm.c | 0
.../platform/x86/{ => dell}/dell-smbios-wmi.c | 0
drivers/platform/x86/{ => dell}/dell-smbios.h | 0
.../platform/x86/{ => dell}/dell-smo8800.c | 0
.../platform/x86/{ => dell}/dell-wmi-aio.c | 0
.../x86/{ => dell}/dell-wmi-descriptor.c | 0
.../x86/{ => dell}/dell-wmi-descriptor.h | 0
.../platform/x86/{ => dell}/dell-wmi-led.c | 0
.../x86/{ => dell}/dell-wmi-sysman/Makefile | 0
.../dell-wmi-sysman/biosattr-interface.c | 0
.../dell-wmi-sysman/dell-wmi-sysman.h | 0
.../dell-wmi-sysman/enum-attributes.c | 0
.../dell-wmi-sysman/int-attributes.c | 0
.../dell-wmi-sysman/passobj-attributes.c | 0
.../dell-wmi-sysman/passwordattr-interface.c | 0
.../dell-wmi-sysman/string-attributes.c | 0
.../x86/{ => dell}/dell-wmi-sysman/sysman.c | 0
drivers/platform/x86/{ => dell}/dell-wmi.c | 0
drivers/platform/x86/{ => dell}/dell_rbu.c | 0
31 files changed, 241 insertions(+), 201 deletions(-)
create mode 100644 drivers/platform/x86/dell/Kconfig
create mode 100644 drivers/platform/x86/dell/Makefile
rename drivers/platform/x86/{ => dell}/alienware-wmi.c (100%)
rename drivers/platform/x86/{ => dell}/dcdbas.c (100%)
rename drivers/platform/x86/{ => dell}/dcdbas.h (100%)
rename drivers/platform/x86/{ => dell}/dell-laptop.c (100%)
rename drivers/platform/x86/{ => dell}/dell-rbtn.c (100%)
rename drivers/platform/x86/{ => dell}/dell-rbtn.h (100%)
rename drivers/platform/x86/{ => dell}/dell-smbios-base.c (100%)
rename drivers/platform/x86/{ => dell}/dell-smbios-smm.c (100%)
rename drivers/platform/x86/{ => dell}/dell-smbios-wmi.c (100%)
rename drivers/platform/x86/{ => dell}/dell-smbios.h (100%)
rename drivers/platform/x86/{ => dell}/dell-smo8800.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-aio.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-descriptor.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-descriptor.h (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-led.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/Makefile (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/biosattr-interface.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/dell-wmi-sysman.h (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/enum-attributes.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/int-attributes.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/passobj-attributes.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/passwordattr-interface.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/string-attributes.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/sysman.c (100%)
rename drivers/platform/x86/{ => dell}/dell-wmi.c (100%)
rename drivers/platform/x86/{ => dell}/dell_rbu.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index d3e847f7f3dc..ae83c6cff843 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4970,17 +4970,17 @@ M: Matthew Garrett <[email protected]>
M: Pali Rohár <[email protected]>
L: [email protected]
S: Maintained
-F: drivers/platform/x86/dell-laptop.c
+F: drivers/platform/x86/dell/dell-laptop.c

DELL LAPTOP FREEFALL DRIVER
M: Pali Rohár <[email protected]>
S: Maintained
-F: drivers/platform/x86/dell-smo8800.c
+F: drivers/platform/x86/dell/dell-smo8800.c

DELL LAPTOP RBTN DRIVER
M: Pali Rohár <[email protected]>
S: Maintained
-F: drivers/platform/x86/dell-rbtn.*
+F: drivers/platform/x86/dell/dell-rbtn.*

DELL LAPTOP SMM DRIVER
M: Pali Rohár <[email protected]>
@@ -4992,26 +4992,26 @@ DELL REMOTE BIOS UPDATE DRIVER
M: Stuart Hayes <[email protected]>
L: [email protected]
S: Maintained
-F: drivers/platform/x86/dell_rbu.c
+F: drivers/platform/x86/dell/dell_rbu.c

DELL SMBIOS DRIVER
M: Pali Rohár <[email protected]>
M: Mario Limonciello <[email protected]>
L: [email protected]
S: Maintained
-F: drivers/platform/x86/dell-smbios.*
+F: drivers/platform/x86/dell/dell-smbios.*

DELL SMBIOS SMM DRIVER
M: Mario Limonciello <[email protected]>
L: [email protected]
S: Maintained
-F: drivers/platform/x86/dell-smbios-smm.c
+F: drivers/platform/x86/dell/dell-smbios-smm.c

DELL SMBIOS WMI DRIVER
M: Mario Limonciello <[email protected]>
L: [email protected]
S: Maintained
-F: drivers/platform/x86/dell-smbios-wmi.c
+F: drivers/platform/x86/dell/dell-smbios-wmi.c
F: tools/wmi/dell-smbios-example.c

DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas)
@@ -5019,12 +5019,12 @@ M: Stuart Hayes <[email protected]>
L: [email protected]
S: Maintained
F: Documentation/driver-api/dcdbas.rst
-F: drivers/platform/x86/dcdbas.*
+F: drivers/platform/x86/dell/dcdbas.*

DELL WMI DESCRIPTOR DRIVER
M: Mario Limonciello <[email protected]>
S: Maintained
-F: drivers/platform/x86/dell-wmi-descriptor.c
+F: drivers/platform/x86/dell/dell-wmi-descriptor.c

DELL WMI SYSMAN DRIVER
M: Divya Bharathi <[email protected]>
@@ -5033,13 +5033,13 @@ M: Prasanth Ksr <[email protected]>
L: [email protected]
S: Maintained
F: Documentation/ABI/testing/sysfs-class-firmware-attributes
-F: drivers/platform/x86/dell-wmi-sysman/
+F: drivers/platform/x86/dell/dell-wmi-sysman/

DELL WMI NOTIFICATIONS DRIVER
M: Matthew Garrett <[email protected]>
M: Pali Rohár <[email protected]>
S: Maintained
-F: drivers/platform/x86/dell-wmi.c
+F: drivers/platform/x86/dell/dell-wmi.c

DELTA ST MEDIA DRIVER
M: Hugues Fruchet <[email protected]>
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 91e6176cdfbd..211cf907f041 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -49,18 +49,6 @@ config WMI_BMOF
To compile this driver as a module, choose M here: the module will
be called wmi-bmof.

-config ALIENWARE_WMI
- tristate "Alienware Special feature control"
- depends on ACPI
- depends on LEDS_CLASS
- depends on NEW_LEDS
- depends on ACPI_WMI
- help
- This is a driver for controlling Alienware BIOS driven
- features. It exposes an interface for controlling the AlienFX
- zones on Alienware machines that don't contain a dedicated AlienFX
- USB MCU such as the X51 and X51-R2.
-
config HUAWEI_WMI
tristate "Huawei WMI laptop extras driver"
depends on ACPI_BATTERY
@@ -327,169 +315,7 @@ config EEEPC_WMI
If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M
here.

-config DCDBAS
- tristate "Dell Systems Management Base Driver"
- depends on X86
- help
- The Dell Systems Management Base Driver provides a sysfs interface
- for systems management software to perform System Management
- Interrupts (SMIs) and Host Control Actions (system power cycle or
- power off after OS shutdown) on certain Dell systems.
-
- See <file:Documentation/driver-api/dcdbas.rst> for more details on the driver
- and the Dell systems on which Dell systems management software makes
- use of this driver.
-
- Say Y or M here to enable the driver for use by Dell systems
- management software such as Dell OpenManage.
-
-#
-# The DELL_SMBIOS driver depends on ACPI_WMI and/or DCDBAS if those
-# backends are selected. The "depends" line prevents a configuration
-# where DELL_SMBIOS=y while either of those dependencies =m.
-#
-config DELL_SMBIOS
- tristate "Dell SMBIOS driver"
- depends on DCDBAS || DCDBAS=n
- depends on ACPI_WMI || ACPI_WMI=n
- help
- This provides support for the Dell SMBIOS calling interface.
- If you have a Dell computer you should enable this option.
-
- Be sure to select at least one backend for it to work properly.
-
-config DELL_SMBIOS_WMI
- bool "Dell SMBIOS driver WMI backend"
- default y
- depends on ACPI_WMI
- select DELL_WMI_DESCRIPTOR
- depends on DELL_SMBIOS
- help
- This provides an implementation for the Dell SMBIOS calling interface
- communicated over ACPI-WMI.
-
- If you have a Dell computer from >2007 you should say Y here.
- If you aren't sure and this module doesn't work for your computer
- it just won't load.
-
-config DELL_SMBIOS_SMM
- bool "Dell SMBIOS driver SMM backend"
- default y
- depends on DCDBAS
- depends on DELL_SMBIOS
- help
- This provides an implementation for the Dell SMBIOS calling interface
- communicated over SMI/SMM.
-
- If you have a Dell computer from <=2017 you should say Y here.
- If you aren't sure and this module doesn't work for your computer
- it just won't load.
-
-config DELL_LAPTOP
- tristate "Dell Laptop Extras"
- depends on DMI
- depends on BACKLIGHT_CLASS_DEVICE
- depends on ACPI_VIDEO || ACPI_VIDEO = n
- depends on RFKILL || RFKILL = n
- depends on SERIO_I8042
- depends on DELL_SMBIOS
- select POWER_SUPPLY
- select LEDS_CLASS
- select NEW_LEDS
- select LEDS_TRIGGERS
- select LEDS_TRIGGER_AUDIO
- help
- This driver adds support for rfkill and backlight control to Dell
- laptops (except for some models covered by the Compal driver).
-
-config DELL_RBTN
- tristate "Dell Airplane Mode Switch driver"
- depends on ACPI
- depends on INPUT
- depends on RFKILL
- help
- Say Y here if you want to support Dell Airplane Mode Switch ACPI
- device on Dell laptops. Sometimes it has names: DELLABCE or DELRBTN.
- This driver register rfkill device or input hotkey device depending
- on hardware type (hw switch slider or keyboard toggle button). For
- rfkill devices it receive HW switch events and set correct hard
- rfkill state.
-
- To compile this driver as a module, choose M here: the module will
- be called dell-rbtn.
-
-config DELL_RBU
- tristate "BIOS update support for DELL systems via sysfs"
- depends on X86
- select FW_LOADER
- select FW_LOADER_USER_HELPER
- help
- Say m if you want to have the option of updating the BIOS for your
- DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)
- supporting application to communicate with the BIOS regarding the new
- image for the image update to take effect.
- See <file:Documentation/admin-guide/dell_rbu.rst> for more details on the driver.
-
-config DELL_SMO8800
- tristate "Dell Latitude freefall driver (ACPI SMO88XX)"
- depends on ACPI
- help
- Say Y here if you want to support SMO88XX freefall devices
- on Dell Latitude laptops.
-
- To compile this driver as a module, choose M here: the module will
- be called dell-smo8800.
-
-config DELL_WMI
- tristate "Dell WMI notifications"
- depends on ACPI_WMI
- depends on DMI
- depends on INPUT
- depends on ACPI_VIDEO || ACPI_VIDEO = n
- depends on DELL_SMBIOS
- select DELL_WMI_DESCRIPTOR
- select INPUT_SPARSEKMAP
- help
- Say Y here if you want to support WMI-based hotkeys on Dell laptops.
-
- To compile this driver as a module, choose M here: the module will
- be called dell-wmi.
-
-config DELL_WMI_SYSMAN
- tristate "Dell WMI-based Systems management driver"
- depends on ACPI_WMI
- depends on DMI
- select NLS
- help
- This driver allows changing BIOS settings on many Dell machines from
- 2018 and newer without the use of any additional software.
-
- To compile this driver as a module, choose M here: the module will
- be called dell-wmi-sysman.
-
-config DELL_WMI_DESCRIPTOR
- tristate
- depends on ACPI_WMI
-
-config DELL_WMI_AIO
- tristate "WMI Hotkeys for Dell All-In-One series"
- depends on ACPI_WMI
- depends on INPUT
- select INPUT_SPARSEKMAP
- help
- Say Y here if you want to support WMI-based hotkeys on Dell
- All-In-One machines.
-
- To compile this driver as a module, choose M here: the module will
- be called dell-wmi-aio.
-
-config DELL_WMI_LED
- tristate "External LED on Dell Business Netbooks"
- depends on LEDS_CLASS
- depends on ACPI_WMI
- help
- This adds support for the Latitude 2100 and similar
- notebooks that have an external LED.
+source "drivers/platform/x86/dell/Kconfig"

config AMILO_RFKILL
tristate "Fujitsu-Siemens Amilo rfkill support"
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
index 581475f59819..98ad9bcac293 100644
--- a/drivers/platform/x86/Makefile
+++ b/drivers/platform/x86/Makefile
@@ -9,7 +9,6 @@ obj-$(CONFIG_ACPI_WMI) += wmi.o
obj-$(CONFIG_WMI_BMOF) += wmi-bmof.o

# WMI drivers
-obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o
obj-$(CONFIG_HUAWEI_WMI) += huawei-wmi.o
obj-$(CONFIG_INTEL_WMI_SBL_FW_UPDATE) += intel-wmi-sbl-fw-update.o
obj-$(CONFIG_INTEL_WMI_THUNDERBOLT) += intel-wmi-thunderbolt.o
@@ -37,20 +36,7 @@ obj-$(CONFIG_EEEPC_LAPTOP) += eeepc-laptop.o
obj-$(CONFIG_EEEPC_WMI) += eeepc-wmi.o

# Dell
-obj-$(CONFIG_DCDBAS) += dcdbas.o
-obj-$(CONFIG_DELL_SMBIOS) += dell-smbios.o
-dell-smbios-objs := dell-smbios-base.o
-dell-smbios-$(CONFIG_DELL_SMBIOS_WMI) += dell-smbios-wmi.o
-dell-smbios-$(CONFIG_DELL_SMBIOS_SMM) += dell-smbios-smm.o
-obj-$(CONFIG_DELL_LAPTOP) += dell-laptop.o
-obj-$(CONFIG_DELL_RBTN) += dell-rbtn.o
-obj-$(CONFIG_DELL_RBU) += dell_rbu.o
-obj-$(CONFIG_DELL_SMO8800) += dell-smo8800.o
-obj-$(CONFIG_DELL_WMI) += dell-wmi.o
-obj-$(CONFIG_DELL_WMI_DESCRIPTOR) += dell-wmi-descriptor.o
-obj-$(CONFIG_DELL_WMI_AIO) += dell-wmi-aio.o
-obj-$(CONFIG_DELL_WMI_LED) += dell-wmi-led.o
-obj-$(CONFIG_DELL_WMI_SYSMAN) += dell-wmi-sysman/
+obj-$(CONFIG_X86_PLATFORM_DRIVERS_DELL) += dell/

# Fujitsu
obj-$(CONFIG_AMILO_RFKILL) += amilo-rfkill.o
diff --git a/drivers/platform/x86/dell/Kconfig b/drivers/platform/x86/dell/Kconfig
new file mode 100644
index 000000000000..31601679d1cc
--- /dev/null
+++ b/drivers/platform/x86/dell/Kconfig
@@ -0,0 +1,207 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Dell X86 Platform Specific Drivers
+#
+
+menuconfig X86_PLATFORM_DRIVERS_DELL
+ bool "Dell X86 Platform Specific Device Drivers"
+ default n
+ depends on X86_PLATFORM_DEVICES
+ help
+ Say Y here to get to see options for device drivers for various
+ Dell x86 platforms, including vendor-specific laptop extension drivers.
+ This option alone does not add any kernel code.
+
+ If you say N, all options in this submenu will be skipped and disabled.
+
+if X86_PLATFORM_DRIVERS_DELL
+
+config ALIENWARE_WMI
+ tristate "Alienware Special feature control"
+ default m
+ depends on ACPI
+ depends on LEDS_CLASS
+ depends on NEW_LEDS
+ depends on ACPI_WMI
+ help
+ This is a driver for controlling Alienware BIOS driven
+ features. It exposes an interface for controlling the AlienFX
+ zones on Alienware machines that don't contain a dedicated AlienFX
+ USB MCU such as the X51 and X51-R2.
+
+config DCDBAS
+ tristate "Dell Systems Management Base Driver"
+ default m
+ depends on X86
+ help
+ The Dell Systems Management Base Driver provides a sysfs interface
+ for systems management software to perform System Management
+ Interrupts (SMIs) and Host Control Actions (system power cycle or
+ power off after OS shutdown) on certain Dell systems.
+
+ See <file:Documentation/driver-api/dcdbas.rst> for more details on the driver
+ and the Dell systems on which Dell systems management software makes
+ use of this driver.
+
+ Say Y or M here to enable the driver for use by Dell systems
+ management software such as Dell OpenManage.
+
+config DELL_LAPTOP
+ tristate "Dell Laptop Extras"
+ default m
+ depends on DMI
+ depends on BACKLIGHT_CLASS_DEVICE
+ depends on ACPI_VIDEO || ACPI_VIDEO = n
+ depends on RFKILL || RFKILL = n
+ depends on SERIO_I8042
+ depends on DELL_SMBIOS
+ select POWER_SUPPLY
+ select LEDS_CLASS
+ select NEW_LEDS
+ select LEDS_TRIGGERS
+ select LEDS_TRIGGER_AUDIO
+ help
+ This driver adds support for rfkill and backlight control to Dell
+ laptops (except for some models covered by the Compal driver).
+
+config DELL_RBU
+ tristate "BIOS update support for DELL systems via sysfs"
+ default m
+ depends on X86
+ select FW_LOADER
+ select FW_LOADER_USER_HELPER
+ help
+ Say m if you want to have the option of updating the BIOS for your
+ DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)
+ supporting application to communicate with the BIOS regarding the new
+ image for the image update to take effect.
+ See <file:Documentation/admin-guide/dell_rbu.rst> for more details on the driver.
+
+config DELL_RBTN
+ tristate "Dell Airplane Mode Switch driver"
+ default m
+ depends on ACPI
+ depends on INPUT
+ depends on RFKILL
+ help
+ Say Y here if you want to support Dell Airplane Mode Switch ACPI
+ device on Dell laptops. Sometimes it has names: DELLABCE or DELRBTN.
+ This driver register rfkill device or input hotkey device depending
+ on hardware type (hw switch slider or keyboard toggle button). For
+ rfkill devices it receive HW switch events and set correct hard
+ rfkill state.
+
+ To compile this driver as a module, choose M here: the module will
+ be called dell-rbtn.
+
+#
+# The DELL_SMBIOS driver depends on ACPI_WMI and/or DCDBAS if those
+# backends are selected. The "depends" line prevents a configuration
+# where DELL_SMBIOS=y while either of those dependencies =m.
+#
+config DELL_SMBIOS
+ tristate "Dell SMBIOS driver"
+ default m
+ depends on DCDBAS || DCDBAS=n
+ depends on ACPI_WMI || ACPI_WMI=n
+ help
+ This provides support for the Dell SMBIOS calling interface.
+ If you have a Dell computer you should enable this option.
+
+ Be sure to select at least one backend for it to work properly.
+
+config DELL_SMBIOS_WMI
+ bool "Dell SMBIOS driver WMI backend"
+ default y
+ depends on ACPI_WMI
+ select DELL_WMI_DESCRIPTOR
+ depends on DELL_SMBIOS
+ help
+ This provides an implementation for the Dell SMBIOS calling interface
+ communicated over ACPI-WMI.
+
+ If you have a Dell computer from >2007 you should say Y here.
+ If you aren't sure and this module doesn't work for your computer
+ it just won't load.
+
+config DELL_SMBIOS_SMM
+ bool "Dell SMBIOS driver SMM backend"
+ default y
+ depends on DCDBAS
+ depends on DELL_SMBIOS
+ help
+ This provides an implementation for the Dell SMBIOS calling interface
+ communicated over SMI/SMM.
+
+ If you have a Dell computer from <=2017 you should say Y here.
+ If you aren't sure and this module doesn't work for your computer
+ it just won't load.
+
+config DELL_SMO8800
+ tristate "Dell Latitude freefall driver (ACPI SMO88XX)"
+ default m
+ depends on ACPI
+ help
+ Say Y here if you want to support SMO88XX freefall devices
+ on Dell Latitude laptops.
+
+ To compile this driver as a module, choose M here: the module will
+ be called dell-smo8800.
+
+config DELL_WMI
+ tristate "Dell WMI notifications"
+ default m
+ depends on ACPI_WMI
+ depends on DMI
+ depends on INPUT
+ depends on ACPI_VIDEO || ACPI_VIDEO = n
+ depends on DELL_SMBIOS
+ select DELL_WMI_DESCRIPTOR
+ select INPUT_SPARSEKMAP
+ help
+ Say Y here if you want to support WMI-based hotkeys on Dell laptops.
+
+ To compile this driver as a module, choose M here: the module will
+ be called dell-wmi.
+
+config DELL_WMI_AIO
+ tristate "WMI Hotkeys for Dell All-In-One series"
+ default m
+ depends on ACPI_WMI
+ depends on INPUT
+ select INPUT_SPARSEKMAP
+ help
+ Say Y here if you want to support WMI-based hotkeys on Dell
+ All-In-One machines.
+
+ To compile this driver as a module, choose M here: the module will
+ be called dell-wmi-aio.
+
+config DELL_WMI_DESCRIPTOR
+ tristate
+ default m
+ depends on ACPI_WMI
+
+config DELL_WMI_LED
+ tristate "External LED on Dell Business Netbooks"
+ default m
+ depends on LEDS_CLASS
+ depends on ACPI_WMI
+ help
+ This adds support for the Latitude 2100 and similar
+ notebooks that have an external LED.
+
+config DELL_WMI_SYSMAN
+ tristate "Dell WMI-based Systems management driver"
+ default m
+ depends on ACPI_WMI
+ depends on DMI
+ select NLS
+ help
+ This driver allows changing BIOS settings on many Dell machines from
+ 2018 and newer without the use of any additional software.
+
+ To compile this driver as a module, choose M here: the module will
+ be called dell-wmi-sysman.
+
+endif # X86_PLATFORM_DRIVERS_DELL
diff --git a/drivers/platform/x86/dell/Makefile b/drivers/platform/x86/dell/Makefile
new file mode 100644
index 000000000000..d720a3e42ae3
--- /dev/null
+++ b/drivers/platform/x86/dell/Makefile
@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for linux/drivers/platform/x86/dell
+# Dell x86 Platform-Specific Drivers
+#
+
+obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o
+obj-$(CONFIG_DCDBAS) += dcdbas.o
+obj-$(CONFIG_DELL_LAPTOP) += dell-laptop.o
+obj-$(CONFIG_DELL_RBTN) += dell-rbtn.o
+obj-$(CONFIG_DELL_RBU) += dell_rbu.o
+obj-$(CONFIG_DELL_SMBIOS) += dell-smbios.o
+dell-smbios-objs := dell-smbios-base.o
+dell-smbios-$(CONFIG_DELL_SMBIOS_WMI) += dell-smbios-wmi.o
+dell-smbios-$(CONFIG_DELL_SMBIOS_SMM) += dell-smbios-smm.o
+obj-$(CONFIG_DELL_SMO8800) += dell-smo8800.o
+obj-$(CONFIG_DELL_WMI) += dell-wmi.o
+obj-$(CONFIG_DELL_WMI_AIO) += dell-wmi-aio.o
+obj-$(CONFIG_DELL_WMI_DESCRIPTOR) += dell-wmi-descriptor.o
+obj-$(CONFIG_DELL_WMI_LED) += dell-wmi-led.o
+obj-$(CONFIG_DELL_WMI_SYSMAN) += dell-wmi-sysman/
diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/dell/alienware-wmi.c
similarity index 100%
rename from drivers/platform/x86/alienware-wmi.c
rename to drivers/platform/x86/dell/alienware-wmi.c
diff --git a/drivers/platform/x86/dcdbas.c b/drivers/platform/x86/dell/dcdbas.c
similarity index 100%
rename from drivers/platform/x86/dcdbas.c
rename to drivers/platform/x86/dell/dcdbas.c
diff --git a/drivers/platform/x86/dcdbas.h b/drivers/platform/x86/dell/dcdbas.h
similarity index 100%
rename from drivers/platform/x86/dcdbas.h
rename to drivers/platform/x86/dell/dcdbas.h
diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell/dell-laptop.c
similarity index 100%
rename from drivers/platform/x86/dell-laptop.c
rename to drivers/platform/x86/dell/dell-laptop.c
diff --git a/drivers/platform/x86/dell-rbtn.c b/drivers/platform/x86/dell/dell-rbtn.c
similarity index 100%
rename from drivers/platform/x86/dell-rbtn.c
rename to drivers/platform/x86/dell/dell-rbtn.c
diff --git a/drivers/platform/x86/dell-rbtn.h b/drivers/platform/x86/dell/dell-rbtn.h
similarity index 100%
rename from drivers/platform/x86/dell-rbtn.h
rename to drivers/platform/x86/dell/dell-rbtn.h
diff --git a/drivers/platform/x86/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
similarity index 100%
rename from drivers/platform/x86/dell-smbios-base.c
rename to drivers/platform/x86/dell/dell-smbios-base.c
diff --git a/drivers/platform/x86/dell-smbios-smm.c b/drivers/platform/x86/dell/dell-smbios-smm.c
similarity index 100%
rename from drivers/platform/x86/dell-smbios-smm.c
rename to drivers/platform/x86/dell/dell-smbios-smm.c
diff --git a/drivers/platform/x86/dell-smbios-wmi.c b/drivers/platform/x86/dell/dell-smbios-wmi.c
similarity index 100%
rename from drivers/platform/x86/dell-smbios-wmi.c
rename to drivers/platform/x86/dell/dell-smbios-wmi.c
diff --git a/drivers/platform/x86/dell-smbios.h b/drivers/platform/x86/dell/dell-smbios.h
similarity index 100%
rename from drivers/platform/x86/dell-smbios.h
rename to drivers/platform/x86/dell/dell-smbios.h
diff --git a/drivers/platform/x86/dell-smo8800.c b/drivers/platform/x86/dell/dell-smo8800.c
similarity index 100%
rename from drivers/platform/x86/dell-smo8800.c
rename to drivers/platform/x86/dell/dell-smo8800.c
diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell/dell-wmi-aio.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-aio.c
rename to drivers/platform/x86/dell/dell-wmi-aio.c
diff --git a/drivers/platform/x86/dell-wmi-descriptor.c b/drivers/platform/x86/dell/dell-wmi-descriptor.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-descriptor.c
rename to drivers/platform/x86/dell/dell-wmi-descriptor.c
diff --git a/drivers/platform/x86/dell-wmi-descriptor.h b/drivers/platform/x86/dell/dell-wmi-descriptor.h
similarity index 100%
rename from drivers/platform/x86/dell-wmi-descriptor.h
rename to drivers/platform/x86/dell/dell-wmi-descriptor.h
diff --git a/drivers/platform/x86/dell-wmi-led.c b/drivers/platform/x86/dell/dell-wmi-led.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-led.c
rename to drivers/platform/x86/dell/dell-wmi-led.c
diff --git a/drivers/platform/x86/dell-wmi-sysman/Makefile b/drivers/platform/x86/dell/dell-wmi-sysman/Makefile
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/Makefile
rename to drivers/platform/x86/dell/dell-wmi-sysman/Makefile
diff --git a/drivers/platform/x86/dell-wmi-sysman/biosattr-interface.c b/drivers/platform/x86/dell/dell-wmi-sysman/biosattr-interface.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/biosattr-interface.c
rename to drivers/platform/x86/dell/dell-wmi-sysman/biosattr-interface.c
diff --git a/drivers/platform/x86/dell-wmi-sysman/dell-wmi-sysman.h b/drivers/platform/x86/dell/dell-wmi-sysman/dell-wmi-sysman.h
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/dell-wmi-sysman.h
rename to drivers/platform/x86/dell/dell-wmi-sysman/dell-wmi-sysman.h
diff --git a/drivers/platform/x86/dell-wmi-sysman/enum-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/enum-attributes.c
rename to drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
diff --git a/drivers/platform/x86/dell-wmi-sysman/int-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/int-attributes.c
rename to drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c
diff --git a/drivers/platform/x86/dell-wmi-sysman/passobj-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/passobj-attributes.c
rename to drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c
diff --git a/drivers/platform/x86/dell-wmi-sysman/passwordattr-interface.c b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/passwordattr-interface.c
rename to drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
diff --git a/drivers/platform/x86/dell-wmi-sysman/string-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/string-attributes.c
rename to drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c
diff --git a/drivers/platform/x86/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi-sysman/sysman.c
rename to drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell/dell-wmi.c
similarity index 100%
rename from drivers/platform/x86/dell-wmi.c
rename to drivers/platform/x86/dell/dell-wmi.c
diff --git a/drivers/platform/x86/dell_rbu.c b/drivers/platform/x86/dell/dell_rbu.c
similarity index 100%
rename from drivers/platform/x86/dell_rbu.c
rename to drivers/platform/x86/dell/dell_rbu.c
--
2.25.1


2021-02-05 00:08:45

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH v2] platform/x86: Move all dell drivers to their own subdirectory

Hi,

On 2/3/21 8:58 PM, Mario Limonciello wrote:
> A user without a Dell system doesn't need to pick any of these
> drivers.
>
> Users with a Dell system can enable this submenu and all drivers
> behind it will be enabled.
>
> Suggested-by: Andy Shevchenko <[email protected]>
> Signed-off-by: Mario Limonciello <[email protected]>

Thank you for your patch, I've applied this patch to my review-hans
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

There was one small issue with the patch, all the "default m" lines
which you added were indented with 4 spaces instead of a tab, I've
fixed this up locally.

The patch will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans


> ---
> Changes from v1->v2:
> - Rename menu per Andy's suggestion
> - Move if/endif for menu into subdirectory
> - Set default for menu to "n" but individual modules to "m"
> Should be same defaults as previous, but allow an "easy" switch
> MAINTAINERS | 22 +-
> drivers/platform/x86/Kconfig | 176 +--------------
> drivers/platform/x86/Makefile | 16 +-
> drivers/platform/x86/dell/Kconfig | 207 ++++++++++++++++++
> drivers/platform/x86/dell/Makefile | 21 ++
> .../platform/x86/{ => dell}/alienware-wmi.c | 0
> drivers/platform/x86/{ => dell}/dcdbas.c | 0
> drivers/platform/x86/{ => dell}/dcdbas.h | 0
> drivers/platform/x86/{ => dell}/dell-laptop.c | 0
> drivers/platform/x86/{ => dell}/dell-rbtn.c | 0
> drivers/platform/x86/{ => dell}/dell-rbtn.h | 0
> .../x86/{ => dell}/dell-smbios-base.c | 0
> .../platform/x86/{ => dell}/dell-smbios-smm.c | 0
> .../platform/x86/{ => dell}/dell-smbios-wmi.c | 0
> drivers/platform/x86/{ => dell}/dell-smbios.h | 0
> .../platform/x86/{ => dell}/dell-smo8800.c | 0
> .../platform/x86/{ => dell}/dell-wmi-aio.c | 0
> .../x86/{ => dell}/dell-wmi-descriptor.c | 0
> .../x86/{ => dell}/dell-wmi-descriptor.h | 0
> .../platform/x86/{ => dell}/dell-wmi-led.c | 0
> .../x86/{ => dell}/dell-wmi-sysman/Makefile | 0
> .../dell-wmi-sysman/biosattr-interface.c | 0
> .../dell-wmi-sysman/dell-wmi-sysman.h | 0
> .../dell-wmi-sysman/enum-attributes.c | 0
> .../dell-wmi-sysman/int-attributes.c | 0
> .../dell-wmi-sysman/passobj-attributes.c | 0
> .../dell-wmi-sysman/passwordattr-interface.c | 0
> .../dell-wmi-sysman/string-attributes.c | 0
> .../x86/{ => dell}/dell-wmi-sysman/sysman.c | 0
> drivers/platform/x86/{ => dell}/dell-wmi.c | 0
> drivers/platform/x86/{ => dell}/dell_rbu.c | 0
> 31 files changed, 241 insertions(+), 201 deletions(-)
> create mode 100644 drivers/platform/x86/dell/Kconfig
> create mode 100644 drivers/platform/x86/dell/Makefile
> rename drivers/platform/x86/{ => dell}/alienware-wmi.c (100%)
> rename drivers/platform/x86/{ => dell}/dcdbas.c (100%)
> rename drivers/platform/x86/{ => dell}/dcdbas.h (100%)
> rename drivers/platform/x86/{ => dell}/dell-laptop.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-rbtn.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-rbtn.h (100%)
> rename drivers/platform/x86/{ => dell}/dell-smbios-base.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-smbios-smm.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-smbios-wmi.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-smbios.h (100%)
> rename drivers/platform/x86/{ => dell}/dell-smo8800.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-aio.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-descriptor.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-descriptor.h (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-led.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/Makefile (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/biosattr-interface.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/dell-wmi-sysman.h (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/enum-attributes.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/int-attributes.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/passobj-attributes.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/passwordattr-interface.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/string-attributes.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi-sysman/sysman.c (100%)
> rename drivers/platform/x86/{ => dell}/dell-wmi.c (100%)
> rename drivers/platform/x86/{ => dell}/dell_rbu.c (100%)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d3e847f7f3dc..ae83c6cff843 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -4970,17 +4970,17 @@ M: Matthew Garrett <[email protected]>
> M: Pali Rohár <[email protected]>
> L: [email protected]
> S: Maintained
> -F: drivers/platform/x86/dell-laptop.c
> +F: drivers/platform/x86/dell/dell-laptop.c
>
> DELL LAPTOP FREEFALL DRIVER
> M: Pali Rohár <[email protected]>
> S: Maintained
> -F: drivers/platform/x86/dell-smo8800.c
> +F: drivers/platform/x86/dell/dell-smo8800.c
>
> DELL LAPTOP RBTN DRIVER
> M: Pali Rohár <[email protected]>
> S: Maintained
> -F: drivers/platform/x86/dell-rbtn.*
> +F: drivers/platform/x86/dell/dell-rbtn.*
>
> DELL LAPTOP SMM DRIVER
> M: Pali Rohár <[email protected]>
> @@ -4992,26 +4992,26 @@ DELL REMOTE BIOS UPDATE DRIVER
> M: Stuart Hayes <[email protected]>
> L: [email protected]
> S: Maintained
> -F: drivers/platform/x86/dell_rbu.c
> +F: drivers/platform/x86/dell/dell_rbu.c
>
> DELL SMBIOS DRIVER
> M: Pali Rohár <[email protected]>
> M: Mario Limonciello <[email protected]>
> L: [email protected]
> S: Maintained
> -F: drivers/platform/x86/dell-smbios.*
> +F: drivers/platform/x86/dell/dell-smbios.*
>
> DELL SMBIOS SMM DRIVER
> M: Mario Limonciello <[email protected]>
> L: [email protected]
> S: Maintained
> -F: drivers/platform/x86/dell-smbios-smm.c
> +F: drivers/platform/x86/dell/dell-smbios-smm.c
>
> DELL SMBIOS WMI DRIVER
> M: Mario Limonciello <[email protected]>
> L: [email protected]
> S: Maintained
> -F: drivers/platform/x86/dell-smbios-wmi.c
> +F: drivers/platform/x86/dell/dell-smbios-wmi.c
> F: tools/wmi/dell-smbios-example.c
>
> DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas)
> @@ -5019,12 +5019,12 @@ M: Stuart Hayes <[email protected]>
> L: [email protected]
> S: Maintained
> F: Documentation/driver-api/dcdbas.rst
> -F: drivers/platform/x86/dcdbas.*
> +F: drivers/platform/x86/dell/dcdbas.*
>
> DELL WMI DESCRIPTOR DRIVER
> M: Mario Limonciello <[email protected]>
> S: Maintained
> -F: drivers/platform/x86/dell-wmi-descriptor.c
> +F: drivers/platform/x86/dell/dell-wmi-descriptor.c
>
> DELL WMI SYSMAN DRIVER
> M: Divya Bharathi <[email protected]>
> @@ -5033,13 +5033,13 @@ M: Prasanth Ksr <[email protected]>
> L: [email protected]
> S: Maintained
> F: Documentation/ABI/testing/sysfs-class-firmware-attributes
> -F: drivers/platform/x86/dell-wmi-sysman/
> +F: drivers/platform/x86/dell/dell-wmi-sysman/
>
> DELL WMI NOTIFICATIONS DRIVER
> M: Matthew Garrett <[email protected]>
> M: Pali Rohár <[email protected]>
> S: Maintained
> -F: drivers/platform/x86/dell-wmi.c
> +F: drivers/platform/x86/dell/dell-wmi.c
>
> DELTA ST MEDIA DRIVER
> M: Hugues Fruchet <[email protected]>
> diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
> index 91e6176cdfbd..211cf907f041 100644
> --- a/drivers/platform/x86/Kconfig
> +++ b/drivers/platform/x86/Kconfig
> @@ -49,18 +49,6 @@ config WMI_BMOF
> To compile this driver as a module, choose M here: the module will
> be called wmi-bmof.
>
> -config ALIENWARE_WMI
> - tristate "Alienware Special feature control"
> - depends on ACPI
> - depends on LEDS_CLASS
> - depends on NEW_LEDS
> - depends on ACPI_WMI
> - help
> - This is a driver for controlling Alienware BIOS driven
> - features. It exposes an interface for controlling the AlienFX
> - zones on Alienware machines that don't contain a dedicated AlienFX
> - USB MCU such as the X51 and X51-R2.
> -
> config HUAWEI_WMI
> tristate "Huawei WMI laptop extras driver"
> depends on ACPI_BATTERY
> @@ -327,169 +315,7 @@ config EEEPC_WMI
> If you have an ACPI-WMI compatible Eee PC laptop (>= 1000), say Y or M
> here.
>
> -config DCDBAS
> - tristate "Dell Systems Management Base Driver"
> - depends on X86
> - help
> - The Dell Systems Management Base Driver provides a sysfs interface
> - for systems management software to perform System Management
> - Interrupts (SMIs) and Host Control Actions (system power cycle or
> - power off after OS shutdown) on certain Dell systems.
> -
> - See <file:Documentation/driver-api/dcdbas.rst> for more details on the driver
> - and the Dell systems on which Dell systems management software makes
> - use of this driver.
> -
> - Say Y or M here to enable the driver for use by Dell systems
> - management software such as Dell OpenManage.
> -
> -#
> -# The DELL_SMBIOS driver depends on ACPI_WMI and/or DCDBAS if those
> -# backends are selected. The "depends" line prevents a configuration
> -# where DELL_SMBIOS=y while either of those dependencies =m.
> -#
> -config DELL_SMBIOS
> - tristate "Dell SMBIOS driver"
> - depends on DCDBAS || DCDBAS=n
> - depends on ACPI_WMI || ACPI_WMI=n
> - help
> - This provides support for the Dell SMBIOS calling interface.
> - If you have a Dell computer you should enable this option.
> -
> - Be sure to select at least one backend for it to work properly.
> -
> -config DELL_SMBIOS_WMI
> - bool "Dell SMBIOS driver WMI backend"
> - default y
> - depends on ACPI_WMI
> - select DELL_WMI_DESCRIPTOR
> - depends on DELL_SMBIOS
> - help
> - This provides an implementation for the Dell SMBIOS calling interface
> - communicated over ACPI-WMI.
> -
> - If you have a Dell computer from >2007 you should say Y here.
> - If you aren't sure and this module doesn't work for your computer
> - it just won't load.
> -
> -config DELL_SMBIOS_SMM
> - bool "Dell SMBIOS driver SMM backend"
> - default y
> - depends on DCDBAS
> - depends on DELL_SMBIOS
> - help
> - This provides an implementation for the Dell SMBIOS calling interface
> - communicated over SMI/SMM.
> -
> - If you have a Dell computer from <=2017 you should say Y here.
> - If you aren't sure and this module doesn't work for your computer
> - it just won't load.
> -
> -config DELL_LAPTOP
> - tristate "Dell Laptop Extras"
> - depends on DMI
> - depends on BACKLIGHT_CLASS_DEVICE
> - depends on ACPI_VIDEO || ACPI_VIDEO = n
> - depends on RFKILL || RFKILL = n
> - depends on SERIO_I8042
> - depends on DELL_SMBIOS
> - select POWER_SUPPLY
> - select LEDS_CLASS
> - select NEW_LEDS
> - select LEDS_TRIGGERS
> - select LEDS_TRIGGER_AUDIO
> - help
> - This driver adds support for rfkill and backlight control to Dell
> - laptops (except for some models covered by the Compal driver).
> -
> -config DELL_RBTN
> - tristate "Dell Airplane Mode Switch driver"
> - depends on ACPI
> - depends on INPUT
> - depends on RFKILL
> - help
> - Say Y here if you want to support Dell Airplane Mode Switch ACPI
> - device on Dell laptops. Sometimes it has names: DELLABCE or DELRBTN.
> - This driver register rfkill device or input hotkey device depending
> - on hardware type (hw switch slider or keyboard toggle button). For
> - rfkill devices it receive HW switch events and set correct hard
> - rfkill state.
> -
> - To compile this driver as a module, choose M here: the module will
> - be called dell-rbtn.
> -
> -config DELL_RBU
> - tristate "BIOS update support for DELL systems via sysfs"
> - depends on X86
> - select FW_LOADER
> - select FW_LOADER_USER_HELPER
> - help
> - Say m if you want to have the option of updating the BIOS for your
> - DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)
> - supporting application to communicate with the BIOS regarding the new
> - image for the image update to take effect.
> - See <file:Documentation/admin-guide/dell_rbu.rst> for more details on the driver.
> -
> -config DELL_SMO8800
> - tristate "Dell Latitude freefall driver (ACPI SMO88XX)"
> - depends on ACPI
> - help
> - Say Y here if you want to support SMO88XX freefall devices
> - on Dell Latitude laptops.
> -
> - To compile this driver as a module, choose M here: the module will
> - be called dell-smo8800.
> -
> -config DELL_WMI
> - tristate "Dell WMI notifications"
> - depends on ACPI_WMI
> - depends on DMI
> - depends on INPUT
> - depends on ACPI_VIDEO || ACPI_VIDEO = n
> - depends on DELL_SMBIOS
> - select DELL_WMI_DESCRIPTOR
> - select INPUT_SPARSEKMAP
> - help
> - Say Y here if you want to support WMI-based hotkeys on Dell laptops.
> -
> - To compile this driver as a module, choose M here: the module will
> - be called dell-wmi.
> -
> -config DELL_WMI_SYSMAN
> - tristate "Dell WMI-based Systems management driver"
> - depends on ACPI_WMI
> - depends on DMI
> - select NLS
> - help
> - This driver allows changing BIOS settings on many Dell machines from
> - 2018 and newer without the use of any additional software.
> -
> - To compile this driver as a module, choose M here: the module will
> - be called dell-wmi-sysman.
> -
> -config DELL_WMI_DESCRIPTOR
> - tristate
> - depends on ACPI_WMI
> -
> -config DELL_WMI_AIO
> - tristate "WMI Hotkeys for Dell All-In-One series"
> - depends on ACPI_WMI
> - depends on INPUT
> - select INPUT_SPARSEKMAP
> - help
> - Say Y here if you want to support WMI-based hotkeys on Dell
> - All-In-One machines.
> -
> - To compile this driver as a module, choose M here: the module will
> - be called dell-wmi-aio.
> -
> -config DELL_WMI_LED
> - tristate "External LED on Dell Business Netbooks"
> - depends on LEDS_CLASS
> - depends on ACPI_WMI
> - help
> - This adds support for the Latitude 2100 and similar
> - notebooks that have an external LED.
> +source "drivers/platform/x86/dell/Kconfig"
>
> config AMILO_RFKILL
> tristate "Fujitsu-Siemens Amilo rfkill support"
> diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
> index 581475f59819..98ad9bcac293 100644
> --- a/drivers/platform/x86/Makefile
> +++ b/drivers/platform/x86/Makefile
> @@ -9,7 +9,6 @@ obj-$(CONFIG_ACPI_WMI) += wmi.o
> obj-$(CONFIG_WMI_BMOF) += wmi-bmof.o
>
> # WMI drivers
> -obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o
> obj-$(CONFIG_HUAWEI_WMI) += huawei-wmi.o
> obj-$(CONFIG_INTEL_WMI_SBL_FW_UPDATE) += intel-wmi-sbl-fw-update.o
> obj-$(CONFIG_INTEL_WMI_THUNDERBOLT) += intel-wmi-thunderbolt.o
> @@ -37,20 +36,7 @@ obj-$(CONFIG_EEEPC_LAPTOP) += eeepc-laptop.o
> obj-$(CONFIG_EEEPC_WMI) += eeepc-wmi.o
>
> # Dell
> -obj-$(CONFIG_DCDBAS) += dcdbas.o
> -obj-$(CONFIG_DELL_SMBIOS) += dell-smbios.o
> -dell-smbios-objs := dell-smbios-base.o
> -dell-smbios-$(CONFIG_DELL_SMBIOS_WMI) += dell-smbios-wmi.o
> -dell-smbios-$(CONFIG_DELL_SMBIOS_SMM) += dell-smbios-smm.o
> -obj-$(CONFIG_DELL_LAPTOP) += dell-laptop.o
> -obj-$(CONFIG_DELL_RBTN) += dell-rbtn.o
> -obj-$(CONFIG_DELL_RBU) += dell_rbu.o
> -obj-$(CONFIG_DELL_SMO8800) += dell-smo8800.o
> -obj-$(CONFIG_DELL_WMI) += dell-wmi.o
> -obj-$(CONFIG_DELL_WMI_DESCRIPTOR) += dell-wmi-descriptor.o
> -obj-$(CONFIG_DELL_WMI_AIO) += dell-wmi-aio.o
> -obj-$(CONFIG_DELL_WMI_LED) += dell-wmi-led.o
> -obj-$(CONFIG_DELL_WMI_SYSMAN) += dell-wmi-sysman/
> +obj-$(CONFIG_X86_PLATFORM_DRIVERS_DELL) += dell/
>
> # Fujitsu
> obj-$(CONFIG_AMILO_RFKILL) += amilo-rfkill.o
> diff --git a/drivers/platform/x86/dell/Kconfig b/drivers/platform/x86/dell/Kconfig
> new file mode 100644
> index 000000000000..31601679d1cc
> --- /dev/null
> +++ b/drivers/platform/x86/dell/Kconfig
> @@ -0,0 +1,207 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# Dell X86 Platform Specific Drivers
> +#
> +
> +menuconfig X86_PLATFORM_DRIVERS_DELL
> + bool "Dell X86 Platform Specific Device Drivers"
> + default n
> + depends on X86_PLATFORM_DEVICES
> + help
> + Say Y here to get to see options for device drivers for various
> + Dell x86 platforms, including vendor-specific laptop extension drivers.
> + This option alone does not add any kernel code.
> +
> + If you say N, all options in this submenu will be skipped and disabled.
> +
> +if X86_PLATFORM_DRIVERS_DELL
> +
> +config ALIENWARE_WMI
> + tristate "Alienware Special feature control"
> + default m
> + depends on ACPI
> + depends on LEDS_CLASS
> + depends on NEW_LEDS
> + depends on ACPI_WMI
> + help
> + This is a driver for controlling Alienware BIOS driven
> + features. It exposes an interface for controlling the AlienFX
> + zones on Alienware machines that don't contain a dedicated AlienFX
> + USB MCU such as the X51 and X51-R2.
> +
> +config DCDBAS
> + tristate "Dell Systems Management Base Driver"
> + default m
> + depends on X86
> + help
> + The Dell Systems Management Base Driver provides a sysfs interface
> + for systems management software to perform System Management
> + Interrupts (SMIs) and Host Control Actions (system power cycle or
> + power off after OS shutdown) on certain Dell systems.
> +
> + See <file:Documentation/driver-api/dcdbas.rst> for more details on the driver
> + and the Dell systems on which Dell systems management software makes
> + use of this driver.
> +
> + Say Y or M here to enable the driver for use by Dell systems
> + management software such as Dell OpenManage.
> +
> +config DELL_LAPTOP
> + tristate "Dell Laptop Extras"
> + default m
> + depends on DMI
> + depends on BACKLIGHT_CLASS_DEVICE
> + depends on ACPI_VIDEO || ACPI_VIDEO = n
> + depends on RFKILL || RFKILL = n
> + depends on SERIO_I8042
> + depends on DELL_SMBIOS
> + select POWER_SUPPLY
> + select LEDS_CLASS
> + select NEW_LEDS
> + select LEDS_TRIGGERS
> + select LEDS_TRIGGER_AUDIO
> + help
> + This driver adds support for rfkill and backlight control to Dell
> + laptops (except for some models covered by the Compal driver).
> +
> +config DELL_RBU
> + tristate "BIOS update support for DELL systems via sysfs"
> + default m
> + depends on X86
> + select FW_LOADER
> + select FW_LOADER_USER_HELPER
> + help
> + Say m if you want to have the option of updating the BIOS for your
> + DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)
> + supporting application to communicate with the BIOS regarding the new
> + image for the image update to take effect.
> + See <file:Documentation/admin-guide/dell_rbu.rst> for more details on the driver.
> +
> +config DELL_RBTN
> + tristate "Dell Airplane Mode Switch driver"
> + default m
> + depends on ACPI
> + depends on INPUT
> + depends on RFKILL
> + help
> + Say Y here if you want to support Dell Airplane Mode Switch ACPI
> + device on Dell laptops. Sometimes it has names: DELLABCE or DELRBTN.
> + This driver register rfkill device or input hotkey device depending
> + on hardware type (hw switch slider or keyboard toggle button). For
> + rfkill devices it receive HW switch events and set correct hard
> + rfkill state.
> +
> + To compile this driver as a module, choose M here: the module will
> + be called dell-rbtn.
> +
> +#
> +# The DELL_SMBIOS driver depends on ACPI_WMI and/or DCDBAS if those
> +# backends are selected. The "depends" line prevents a configuration
> +# where DELL_SMBIOS=y while either of those dependencies =m.
> +#
> +config DELL_SMBIOS
> + tristate "Dell SMBIOS driver"
> + default m
> + depends on DCDBAS || DCDBAS=n
> + depends on ACPI_WMI || ACPI_WMI=n
> + help
> + This provides support for the Dell SMBIOS calling interface.
> + If you have a Dell computer you should enable this option.
> +
> + Be sure to select at least one backend for it to work properly.
> +
> +config DELL_SMBIOS_WMI
> + bool "Dell SMBIOS driver WMI backend"
> + default y
> + depends on ACPI_WMI
> + select DELL_WMI_DESCRIPTOR
> + depends on DELL_SMBIOS
> + help
> + This provides an implementation for the Dell SMBIOS calling interface
> + communicated over ACPI-WMI.
> +
> + If you have a Dell computer from >2007 you should say Y here.
> + If you aren't sure and this module doesn't work for your computer
> + it just won't load.
> +
> +config DELL_SMBIOS_SMM
> + bool "Dell SMBIOS driver SMM backend"
> + default y
> + depends on DCDBAS
> + depends on DELL_SMBIOS
> + help
> + This provides an implementation for the Dell SMBIOS calling interface
> + communicated over SMI/SMM.
> +
> + If you have a Dell computer from <=2017 you should say Y here.
> + If you aren't sure and this module doesn't work for your computer
> + it just won't load.
> +
> +config DELL_SMO8800
> + tristate "Dell Latitude freefall driver (ACPI SMO88XX)"
> + default m
> + depends on ACPI
> + help
> + Say Y here if you want to support SMO88XX freefall devices
> + on Dell Latitude laptops.
> +
> + To compile this driver as a module, choose M here: the module will
> + be called dell-smo8800.
> +
> +config DELL_WMI
> + tristate "Dell WMI notifications"
> + default m
> + depends on ACPI_WMI
> + depends on DMI
> + depends on INPUT
> + depends on ACPI_VIDEO || ACPI_VIDEO = n
> + depends on DELL_SMBIOS
> + select DELL_WMI_DESCRIPTOR
> + select INPUT_SPARSEKMAP
> + help
> + Say Y here if you want to support WMI-based hotkeys on Dell laptops.
> +
> + To compile this driver as a module, choose M here: the module will
> + be called dell-wmi.
> +
> +config DELL_WMI_AIO
> + tristate "WMI Hotkeys for Dell All-In-One series"
> + default m
> + depends on ACPI_WMI
> + depends on INPUT
> + select INPUT_SPARSEKMAP
> + help
> + Say Y here if you want to support WMI-based hotkeys on Dell
> + All-In-One machines.
> +
> + To compile this driver as a module, choose M here: the module will
> + be called dell-wmi-aio.
> +
> +config DELL_WMI_DESCRIPTOR
> + tristate
> + default m
> + depends on ACPI_WMI
> +
> +config DELL_WMI_LED
> + tristate "External LED on Dell Business Netbooks"
> + default m
> + depends on LEDS_CLASS
> + depends on ACPI_WMI
> + help
> + This adds support for the Latitude 2100 and similar
> + notebooks that have an external LED.
> +
> +config DELL_WMI_SYSMAN
> + tristate "Dell WMI-based Systems management driver"
> + default m
> + depends on ACPI_WMI
> + depends on DMI
> + select NLS
> + help
> + This driver allows changing BIOS settings on many Dell machines from
> + 2018 and newer without the use of any additional software.
> +
> + To compile this driver as a module, choose M here: the module will
> + be called dell-wmi-sysman.
> +
> +endif # X86_PLATFORM_DRIVERS_DELL
> diff --git a/drivers/platform/x86/dell/Makefile b/drivers/platform/x86/dell/Makefile
> new file mode 100644
> index 000000000000..d720a3e42ae3
> --- /dev/null
> +++ b/drivers/platform/x86/dell/Makefile
> @@ -0,0 +1,21 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# Makefile for linux/drivers/platform/x86/dell
> +# Dell x86 Platform-Specific Drivers
> +#
> +
> +obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o
> +obj-$(CONFIG_DCDBAS) += dcdbas.o
> +obj-$(CONFIG_DELL_LAPTOP) += dell-laptop.o
> +obj-$(CONFIG_DELL_RBTN) += dell-rbtn.o
> +obj-$(CONFIG_DELL_RBU) += dell_rbu.o
> +obj-$(CONFIG_DELL_SMBIOS) += dell-smbios.o
> +dell-smbios-objs := dell-smbios-base.o
> +dell-smbios-$(CONFIG_DELL_SMBIOS_WMI) += dell-smbios-wmi.o
> +dell-smbios-$(CONFIG_DELL_SMBIOS_SMM) += dell-smbios-smm.o
> +obj-$(CONFIG_DELL_SMO8800) += dell-smo8800.o
> +obj-$(CONFIG_DELL_WMI) += dell-wmi.o
> +obj-$(CONFIG_DELL_WMI_AIO) += dell-wmi-aio.o
> +obj-$(CONFIG_DELL_WMI_DESCRIPTOR) += dell-wmi-descriptor.o
> +obj-$(CONFIG_DELL_WMI_LED) += dell-wmi-led.o
> +obj-$(CONFIG_DELL_WMI_SYSMAN) += dell-wmi-sysman/
> diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/dell/alienware-wmi.c
> similarity index 100%
> rename from drivers/platform/x86/alienware-wmi.c
> rename to drivers/platform/x86/dell/alienware-wmi.c
> diff --git a/drivers/platform/x86/dcdbas.c b/drivers/platform/x86/dell/dcdbas.c
> similarity index 100%
> rename from drivers/platform/x86/dcdbas.c
> rename to drivers/platform/x86/dell/dcdbas.c
> diff --git a/drivers/platform/x86/dcdbas.h b/drivers/platform/x86/dell/dcdbas.h
> similarity index 100%
> rename from drivers/platform/x86/dcdbas.h
> rename to drivers/platform/x86/dell/dcdbas.h
> diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell/dell-laptop.c
> similarity index 100%
> rename from drivers/platform/x86/dell-laptop.c
> rename to drivers/platform/x86/dell/dell-laptop.c
> diff --git a/drivers/platform/x86/dell-rbtn.c b/drivers/platform/x86/dell/dell-rbtn.c
> similarity index 100%
> rename from drivers/platform/x86/dell-rbtn.c
> rename to drivers/platform/x86/dell/dell-rbtn.c
> diff --git a/drivers/platform/x86/dell-rbtn.h b/drivers/platform/x86/dell/dell-rbtn.h
> similarity index 100%
> rename from drivers/platform/x86/dell-rbtn.h
> rename to drivers/platform/x86/dell/dell-rbtn.h
> diff --git a/drivers/platform/x86/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
> similarity index 100%
> rename from drivers/platform/x86/dell-smbios-base.c
> rename to drivers/platform/x86/dell/dell-smbios-base.c
> diff --git a/drivers/platform/x86/dell-smbios-smm.c b/drivers/platform/x86/dell/dell-smbios-smm.c
> similarity index 100%
> rename from drivers/platform/x86/dell-smbios-smm.c
> rename to drivers/platform/x86/dell/dell-smbios-smm.c
> diff --git a/drivers/platform/x86/dell-smbios-wmi.c b/drivers/platform/x86/dell/dell-smbios-wmi.c
> similarity index 100%
> rename from drivers/platform/x86/dell-smbios-wmi.c
> rename to drivers/platform/x86/dell/dell-smbios-wmi.c
> diff --git a/drivers/platform/x86/dell-smbios.h b/drivers/platform/x86/dell/dell-smbios.h
> similarity index 100%
> rename from drivers/platform/x86/dell-smbios.h
> rename to drivers/platform/x86/dell/dell-smbios.h
> diff --git a/drivers/platform/x86/dell-smo8800.c b/drivers/platform/x86/dell/dell-smo8800.c
> similarity index 100%
> rename from drivers/platform/x86/dell-smo8800.c
> rename to drivers/platform/x86/dell/dell-smo8800.c
> diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell/dell-wmi-aio.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-aio.c
> rename to drivers/platform/x86/dell/dell-wmi-aio.c
> diff --git a/drivers/platform/x86/dell-wmi-descriptor.c b/drivers/platform/x86/dell/dell-wmi-descriptor.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-descriptor.c
> rename to drivers/platform/x86/dell/dell-wmi-descriptor.c
> diff --git a/drivers/platform/x86/dell-wmi-descriptor.h b/drivers/platform/x86/dell/dell-wmi-descriptor.h
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-descriptor.h
> rename to drivers/platform/x86/dell/dell-wmi-descriptor.h
> diff --git a/drivers/platform/x86/dell-wmi-led.c b/drivers/platform/x86/dell/dell-wmi-led.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-led.c
> rename to drivers/platform/x86/dell/dell-wmi-led.c
> diff --git a/drivers/platform/x86/dell-wmi-sysman/Makefile b/drivers/platform/x86/dell/dell-wmi-sysman/Makefile
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/Makefile
> rename to drivers/platform/x86/dell/dell-wmi-sysman/Makefile
> diff --git a/drivers/platform/x86/dell-wmi-sysman/biosattr-interface.c b/drivers/platform/x86/dell/dell-wmi-sysman/biosattr-interface.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/biosattr-interface.c
> rename to drivers/platform/x86/dell/dell-wmi-sysman/biosattr-interface.c
> diff --git a/drivers/platform/x86/dell-wmi-sysman/dell-wmi-sysman.h b/drivers/platform/x86/dell/dell-wmi-sysman/dell-wmi-sysman.h
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/dell-wmi-sysman.h
> rename to drivers/platform/x86/dell/dell-wmi-sysman/dell-wmi-sysman.h
> diff --git a/drivers/platform/x86/dell-wmi-sysman/enum-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/enum-attributes.c
> rename to drivers/platform/x86/dell/dell-wmi-sysman/enum-attributes.c
> diff --git a/drivers/platform/x86/dell-wmi-sysman/int-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/int-attributes.c
> rename to drivers/platform/x86/dell/dell-wmi-sysman/int-attributes.c
> diff --git a/drivers/platform/x86/dell-wmi-sysman/passobj-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/passobj-attributes.c
> rename to drivers/platform/x86/dell/dell-wmi-sysman/passobj-attributes.c
> diff --git a/drivers/platform/x86/dell-wmi-sysman/passwordattr-interface.c b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/passwordattr-interface.c
> rename to drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> diff --git a/drivers/platform/x86/dell-wmi-sysman/string-attributes.c b/drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/string-attributes.c
> rename to drivers/platform/x86/dell/dell-wmi-sysman/string-attributes.c
> diff --git a/drivers/platform/x86/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi-sysman/sysman.c
> rename to drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell/dell-wmi.c
> similarity index 100%
> rename from drivers/platform/x86/dell-wmi.c
> rename to drivers/platform/x86/dell/dell-wmi.c
> diff --git a/drivers/platform/x86/dell_rbu.c b/drivers/platform/x86/dell/dell_rbu.c
> similarity index 100%
> rename from drivers/platform/x86/dell_rbu.c
> rename to drivers/platform/x86/dell/dell_rbu.c
>