Skip to content

Commit

Permalink
platform/x86: Update alienware-wmi config entries
Browse files Browse the repository at this point in the history
Add config entries for each WMI driver managed by the alienware-wmi
module to be able to conditionally compile them.

Reviewed-by: Armin Wolf <W_Armin@gmx.de>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Kurt Borja <kuurtb@gmail.com>
Link: https://lore.kernel.org/r/20250207154610.13675-14-kuurtb@gmail.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
  • Loading branch information
Kurt Borja authored and Ilpo Järvinen committed Feb 10, 2025
1 parent dea2895 commit b1b8fcf
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 7 deletions.
30 changes: 25 additions & 5 deletions drivers/platform/x86/dell/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,35 @@ config ALIENWARE_WMI
tristate "Alienware Special feature control"
default m
depends on ACPI
depends on ACPI_WMI
depends on DMI
depends on LEDS_CLASS
depends on NEW_LEDS
depends on ACPI_WMI
help
This is a driver for controlling Alienware WMI driven features.

On legacy devices, 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.

On newer devices, it exposes the AWCC thermal control interface through
known Kernel APIs.

config ALIENWARE_WMI_LEGACY
bool "Alienware Legacy WMI device driver"
default y
depends on ALIENWARE_WMI
help
Legacy Alienware WMI driver with AlienFX LED control capabilities.

config ALIENWARE_WMI_WMAX
bool "Alienware WMAX WMI device driver"
default y
depends on ALIENWARE_WMI
select ACPI_PLATFORM_PROFILE
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.
Alienware WMI driver with AlienFX LED, HDMI, amplifier, deep sleep and
AWCC thermal control capabilities.

config DCDBAS
tristate "Dell Systems Management Base Driver"
Expand Down
4 changes: 2 additions & 2 deletions drivers/platform/x86/dell/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

obj-$(CONFIG_ALIENWARE_WMI) += alienware-wmi.o
alienware-wmi-objs := alienware-wmi-base.o
alienware-wmi-y += alienware-wmi-legacy.o
alienware-wmi-y += alienware-wmi-wmax.o
alienware-wmi-$(CONFIG_ALIENWARE_WMI_LEGACY) += alienware-wmi-legacy.o
alienware-wmi-$(CONFIG_ALIENWARE_WMI_WMAX) += alienware-wmi-wmax.o
obj-$(CONFIG_DCDBAS) += dcdbas.o
obj-$(CONFIG_DELL_LAPTOP) += dell-laptop.o
obj-$(CONFIG_DELL_RBTN) += dell-rbtn.o
Expand Down
25 changes: 25 additions & 0 deletions drivers/platform/x86/dell/alienware-wmi.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,21 @@ int alienware_wmi_command(struct wmi_device *wdev, u32 method_id,

int alienware_alienfx_setup(struct alienfx_platdata *pdata);

#if IS_ENABLED(CONFIG_ALIENWARE_WMI_LEGACY)
int __init alienware_legacy_wmi_init(void);
void __exit alienware_legacy_wmi_exit(void);
#else
static inline int alienware_legacy_wmi_init(void)
{
return -ENODEV;
}

static inline void alienware_legacy_wmi_exit(void)
{
}
#endif

#if IS_ENABLED(CONFIG_ALIENWARE_WMI_WMAX)
extern const struct attribute_group wmax_hdmi_attribute_group;
extern const struct attribute_group wmax_amplifier_attribute_group;
extern const struct attribute_group wmax_deepsleep_attribute_group;
Expand All @@ -88,5 +100,18 @@ extern const struct attribute_group wmax_deepsleep_attribute_group;

int __init alienware_wmax_wmi_init(void);
void __exit alienware_wmax_wmi_exit(void);
#else
#define WMAX_DEV_GROUPS

static inline int alienware_wmax_wmi_init(void)
{
return -ENODEV;
}


static inline void alienware_wmax_wmi_exit(void)
{
}
#endif

#endif

0 comments on commit b1b8fcf

Please sign in to comment.