mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-31 22:23:05 +00:00

Registering the "other mode" notifier fails if that is disabled:
x86_64-linux-ld: drivers/platform/x86/lenovo/wmi-gamezone.o: in function `lwmi_gz_probe':
wmi-gamezone.c:(.text+0x336): undefined reference to `devm_lwmi_om_register_notifier'
This could be fixed by adding a stub helper, but a Kconfig 'select'
seems simpler here.
Fixes: 22024ac536
("platform/x86: Add Lenovo Gamezone WMI Driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20250709151734.1268435-1-arnd@kernel.org
[ij: retained the other selects as wmi-gamezone is using them directly.]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
277 lines
8.9 KiB
Plaintext
277 lines
8.9 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Lenovo X86 Platform Specific Drivers
|
|
#
|
|
|
|
config IDEAPAD_LAPTOP
|
|
tristate "Lenovo IdeaPad Laptop Extras"
|
|
depends on ACPI
|
|
depends on ACPI_BATTERY
|
|
depends on RFKILL && INPUT
|
|
depends on SERIO_I8042
|
|
depends on BACKLIGHT_CLASS_DEVICE
|
|
depends on ACPI_VIDEO || ACPI_VIDEO = n
|
|
depends on ACPI_WMI || ACPI_WMI = n
|
|
select ACPI_PLATFORM_PROFILE
|
|
select INPUT_SPARSEKMAP
|
|
select NEW_LEDS
|
|
select LEDS_CLASS
|
|
help
|
|
This is a driver for Lenovo IdeaPad netbooks contains drivers for
|
|
rfkill switch, hotkey, fan control and backlight control.
|
|
|
|
config LENOVO_WMI_HOTKEY_UTILITIES
|
|
tristate "Lenovo Hotkey Utility WMI extras driver"
|
|
depends on ACPI_WMI
|
|
select NEW_LEDS
|
|
select LEDS_CLASS
|
|
imply IDEAPAD_LAPTOP
|
|
help
|
|
This driver provides WMI support for Lenovo customized hotkeys function,
|
|
such as LED control for audio/mic mute event for Ideapad, YOGA, XiaoXin,
|
|
Gaming, ThinkBook and so on.
|
|
|
|
config LENOVO_WMI_CAMERA
|
|
tristate "Lenovo WMI Camera Button driver"
|
|
depends on ACPI_WMI
|
|
depends on INPUT
|
|
help
|
|
This driver provides support for Lenovo camera button. The Camera
|
|
button is a GPIO device. This driver receives ACPI notifications when
|
|
the camera button is switched on/off.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called lenovo-wmi-camera.
|
|
|
|
config LENOVO_YMC
|
|
tristate "Lenovo Yoga Tablet Mode Control"
|
|
depends on ACPI_WMI
|
|
depends on INPUT
|
|
depends on IDEAPAD_LAPTOP
|
|
select INPUT_SPARSEKMAP
|
|
help
|
|
This driver maps the Tablet Mode Control switch to SW_TABLET_MODE input
|
|
events for Lenovo Yoga notebooks.
|
|
|
|
config THINKPAD_ACPI
|
|
tristate "ThinkPad ACPI Laptop Extras"
|
|
depends on ACPI_EC
|
|
depends on ACPI_BATTERY
|
|
depends on INPUT
|
|
depends on RFKILL || RFKILL = n
|
|
depends on ACPI_VIDEO || ACPI_VIDEO = n
|
|
depends on BACKLIGHT_CLASS_DEVICE
|
|
depends on I2C
|
|
depends on DRM
|
|
select ACPI_PLATFORM_PROFILE
|
|
select DRM_PRIVACY_SCREEN
|
|
select HWMON
|
|
select NVRAM
|
|
select NEW_LEDS
|
|
select LEDS_CLASS
|
|
select INPUT_SPARSEKMAP
|
|
help
|
|
This is a driver for the IBM and Lenovo ThinkPad laptops. It adds
|
|
support for Fn-Fx key combinations, Bluetooth control, video
|
|
output switching, ThinkLight control, UltraBay eject and more.
|
|
For more information about this driver see
|
|
<file:Documentation/admin-guide/laptops/thinkpad-acpi.rst> and
|
|
<http://ibm-acpi.sf.net/> .
|
|
|
|
This driver was formerly known as ibm-acpi.
|
|
|
|
Extra functionality will be available if the rfkill (CONFIG_RFKILL)
|
|
and/or ALSA (CONFIG_SND) subsystems are available in the kernel.
|
|
Note that if you want ThinkPad-ACPI to be built-in instead of
|
|
modular, ALSA and rfkill will also have to be built-in.
|
|
|
|
If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
|
|
|
|
config THINKPAD_ACPI_ALSA_SUPPORT
|
|
bool "Console audio control ALSA interface"
|
|
depends on THINKPAD_ACPI
|
|
depends on SND
|
|
depends on SND = y || THINKPAD_ACPI = SND
|
|
default y
|
|
help
|
|
Enables monitoring of the built-in console audio output control
|
|
(headphone and speakers), which is operated by the mute and (in
|
|
some ThinkPad models) volume hotkeys.
|
|
|
|
If this option is enabled, ThinkPad-ACPI will export an ALSA card
|
|
with a single read-only mixer control, which should be used for
|
|
on-screen-display feedback purposes by the Desktop Environment.
|
|
|
|
Optionally, the driver will also allow software control (the
|
|
ALSA mixer will be made read-write). Please refer to the driver
|
|
documentation for details.
|
|
|
|
All IBM models have both volume and mute control. Newer Lenovo
|
|
models only have mute control (the volume hotkeys are just normal
|
|
keys and volume control is done through the main HDA mixer).
|
|
|
|
config THINKPAD_ACPI_DEBUGFACILITIES
|
|
bool "Maintainer debug facilities"
|
|
depends on THINKPAD_ACPI
|
|
help
|
|
Enables extra stuff in the thinkpad-acpi which is completely useless
|
|
for normal use. Read the driver source to find out what it does.
|
|
|
|
Say N here, unless you were told by a kernel maintainer to do
|
|
otherwise.
|
|
|
|
config THINKPAD_ACPI_DEBUG
|
|
bool "Verbose debug mode"
|
|
depends on THINKPAD_ACPI
|
|
help
|
|
Enables extra debugging information, at the expense of a slightly
|
|
increase in driver size.
|
|
|
|
If you are not sure, say N here.
|
|
|
|
config THINKPAD_ACPI_UNSAFE_LEDS
|
|
bool "Allow control of important LEDs (unsafe)"
|
|
depends on THINKPAD_ACPI
|
|
help
|
|
Overriding LED state on ThinkPads can mask important
|
|
firmware alerts (like critical battery condition), or misled
|
|
the user into damaging the hardware (undocking or ejecting
|
|
the bay while buses are still active), etc.
|
|
|
|
LED control on the ThinkPad is write-only (with very few
|
|
exceptions on very ancient models), which makes it
|
|
impossible to know beforehand if important information will
|
|
be lost when one changes LED state.
|
|
|
|
Users that know what they are doing can enable this option
|
|
and the driver will allow control of every LED, including
|
|
the ones on the dock stations.
|
|
|
|
Never enable this option on a distribution kernel.
|
|
|
|
Say N here, unless you are building a kernel for your own
|
|
use, and need to control the important firmware LEDs.
|
|
|
|
config THINKPAD_ACPI_VIDEO
|
|
bool "Video output control support"
|
|
depends on THINKPAD_ACPI
|
|
default y
|
|
help
|
|
Allows the thinkpad_acpi driver to provide an interface to control
|
|
the various video output ports.
|
|
|
|
This feature often won't work well, depending on ThinkPad model,
|
|
display state, video output devices in use, whether there is a X
|
|
server running, phase of the moon, and the current mood of
|
|
Schroedinger's cat. If you can use X.org's RandR to control
|
|
your ThinkPad's video output ports instead of this feature,
|
|
don't think twice: do it and say N here to save memory and avoid
|
|
bad interactions with X.org.
|
|
|
|
NOTE: access to this feature is limited to processes with the
|
|
CAP_SYS_ADMIN capability, to avoid local DoS issues in platforms
|
|
where it interacts badly with X.org.
|
|
|
|
If you are not sure, say Y here but do try to check if you could
|
|
be using X.org RandR instead.
|
|
|
|
config THINKPAD_ACPI_HOTKEY_POLL
|
|
bool "Support NVRAM polling for hot keys"
|
|
depends on THINKPAD_ACPI
|
|
default y
|
|
help
|
|
Some thinkpad models benefit from NVRAM polling to detect a few of
|
|
the hot key press events. If you know your ThinkPad model does not
|
|
need to do NVRAM polling to support any of the hot keys you use,
|
|
unselecting this option will save about 1kB of memory.
|
|
|
|
ThinkPads T40 and newer, R52 and newer, and X31 and newer are
|
|
unlikely to need NVRAM polling in their latest BIOS versions.
|
|
|
|
NVRAM polling can detect at most the following keys: ThinkPad/Access
|
|
IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute,
|
|
Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12).
|
|
|
|
If you are not sure, say Y here. The driver enables polling only if
|
|
it is strictly necessary to do so.
|
|
|
|
config THINKPAD_LMI
|
|
tristate "Lenovo WMI-based systems management driver"
|
|
depends on ACPI_WMI
|
|
depends on DMI
|
|
select FW_ATTR_CLASS
|
|
help
|
|
This driver allows changing BIOS settings on Lenovo machines whose
|
|
BIOS support the WMI interface.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called think-lmi.
|
|
|
|
config YOGABOOK
|
|
tristate "Lenovo Yoga Book tablet key driver"
|
|
depends on ACPI_WMI
|
|
depends on INPUT
|
|
depends on I2C
|
|
select LEDS_CLASS
|
|
select NEW_LEDS
|
|
help
|
|
Say Y here if you want to support the 'Pen' key and keyboard backlight
|
|
control on the Lenovo Yoga Book tablets.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called lenovo-yogabook.
|
|
|
|
config YT2_1380
|
|
tristate "Lenovo Yoga Tablet 2 1380 fast charge driver"
|
|
depends on SERIAL_DEV_BUS
|
|
depends on EXTCON
|
|
depends on ACPI
|
|
help
|
|
Say Y here to enable support for the custom fast charging protocol
|
|
found on the Lenovo Yoga Tablet 2 1380F / 1380L models.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called lenovo-yogabook.
|
|
|
|
config LENOVO_WMI_DATA01
|
|
tristate
|
|
depends on ACPI_WMI
|
|
|
|
config LENOVO_WMI_EVENTS
|
|
tristate
|
|
depends on ACPI_WMI
|
|
|
|
config LENOVO_WMI_HELPERS
|
|
tristate
|
|
depends on ACPI_WMI
|
|
|
|
config LENOVO_WMI_GAMEZONE
|
|
tristate "Lenovo GameZone WMI Driver"
|
|
depends on ACPI_WMI
|
|
depends on DMI
|
|
select ACPI_PLATFORM_PROFILE
|
|
select LENOVO_WMI_EVENTS
|
|
select LENOVO_WMI_HELPERS
|
|
select LENOVO_WMI_TUNING
|
|
help
|
|
Say Y here if you have a WMI aware Lenovo Legion device and would like to use the
|
|
platform-profile firmware interface to manage power usage.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called lenovo-wmi-gamezone.
|
|
|
|
config LENOVO_WMI_TUNING
|
|
tristate "Lenovo Other Mode WMI Driver"
|
|
depends on ACPI_WMI
|
|
select FW_ATTR_CLASS
|
|
select LENOVO_WMI_DATA01
|
|
select LENOVO_WMI_EVENTS
|
|
select LENOVO_WMI_HELPERS
|
|
help
|
|
Say Y here if you have a WMI aware Lenovo Legion device and would like to use the
|
|
firmware_attributes API to control various tunable settings typically exposed by
|
|
Lenovo software in Windows.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called lenovo-wmi-other.
|