platform-drivers-x86 for v6.10-4
Highlights: - Fix lg-laptop driver not working with 2024 LG laptop models - Add missing MODULE_DESCRIPTION() macros to various modules - nvsw-sn2201: Add check for platform_device_add_resources The following is an automated git shortlog grouped by driver: add missing MODULE_DESCRIPTION() macros: - add missing MODULE_DESCRIPTION() macros lg-laptop: - Use ACPI device handle when evaluating WMAB/WMBB - Change ACPI device id - Remove LGEX0815 hotkey handling platform/mellanox: - nvsw-sn2201: Add check for platform_device_add_resources platform/x86/intel: - add missing MODULE_DESCRIPTION() macros platform/x86/siemens: - add missing MODULE_DESCRIPTION() macros wireless-hotkey: - Add support for LG Airplane Button -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEEuvA7XScYQRpenhd+kuxHeUQDJ9wFAmZ/6kUUHGhkZWdvZWRl QHJlZGhhdC5jb20ACgkQkuxHeUQDJ9z+ywf/dQ9UqyJqejtRHrXjYYZqQyT/xXv9 8aCMXA/U7RPxnIP8Fwkb3hQXW4TMUMYrsz3sHxhCWiyb8fXBgEbrVxDVbIjehnf3 HZRVw/JeFqHe/bIp3QmOH05FSMdBWY34hhsm4dPEYyUiUUPN78ec7bekZ7ERMoFi u3+jKUxIKlcqGqO6E0NtpLmz6Ltu07C5SHgvgpafs8FLuWTvr6dnbKMWB5k/1oCo qn8aXopWsBclaPTPI/ehtHvPnWX9bhuTz0oQjZGrGJQmaVoo81guFLe+Ag2nKPNU mhQQUvUKdDg6ojuSX7Hmtb7pBIP0noxHxuAXll0gePQXjpyJ0Pe07HlNMw== =iWe/ -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v6.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 Pull x86 platform driver fixes from Hans de Goede: - Fix lg-laptop driver not working with 2024 LG laptop models - Add missing MODULE_DESCRIPTION() macros to various modules - nvsw-sn2201: Add check for platform_device_add_resources * tag 'platform-drivers-x86-v6.10-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: platform/x86: add missing MODULE_DESCRIPTION() macros platform/x86/intel: add missing MODULE_DESCRIPTION() macros platform/x86/siemens: add missing MODULE_DESCRIPTION() macros platform/x86: lg-laptop: Use ACPI device handle when evaluating WMAB/WMBB platform/x86: lg-laptop: Change ACPI device id platform/x86: lg-laptop: Remove LGEX0815 hotkey handling platform/x86: wireless-hotkey: Add support for LG Airplane Button platform/mellanox: nvsw-sn2201: Add check for platform_device_add_resources
This commit is contained in:
commit
921863fd9f
@ -1198,6 +1198,7 @@ static int nvsw_sn2201_config_pre_init(struct nvsw_sn2201 *nvsw_sn2201)
|
||||
static int nvsw_sn2201_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct nvsw_sn2201 *nvsw_sn2201;
|
||||
int ret;
|
||||
|
||||
nvsw_sn2201 = devm_kzalloc(&pdev->dev, sizeof(*nvsw_sn2201), GFP_KERNEL);
|
||||
if (!nvsw_sn2201)
|
||||
@ -1205,8 +1206,10 @@ static int nvsw_sn2201_probe(struct platform_device *pdev)
|
||||
|
||||
nvsw_sn2201->dev = &pdev->dev;
|
||||
platform_set_drvdata(pdev, nvsw_sn2201);
|
||||
platform_device_add_resources(pdev, nvsw_sn2201_lpc_io_resources,
|
||||
ret = platform_device_add_resources(pdev, nvsw_sn2201_lpc_io_resources,
|
||||
ARRAY_SIZE(nvsw_sn2201_lpc_io_resources));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
nvsw_sn2201->main_mux_deferred_nr = NVSW_SN2201_MAIN_MUX_DEFER_NR;
|
||||
nvsw_sn2201->main_mux_devs = nvsw_sn2201_main_mux_brdinfo;
|
||||
|
@ -171,6 +171,7 @@ static void __exit amilo_rfkill_exit(void)
|
||||
}
|
||||
|
||||
MODULE_AUTHOR("Ben Hutchings <ben@decadent.org.uk>");
|
||||
MODULE_DESCRIPTION("Fujitsu-Siemens Amilo rfkill support");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DEVICE_TABLE(dmi, amilo_rfkill_id_table);
|
||||
|
||||
|
@ -49,4 +49,5 @@ int fw_attributes_class_put(void)
|
||||
EXPORT_SYMBOL_GPL(fw_attributes_class_put);
|
||||
|
||||
MODULE_AUTHOR("Mark Pearson <markpearson@lenovo.com>");
|
||||
MODULE_DESCRIPTION("Firmware attributes class helper module");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -29,6 +29,7 @@ static bool debug;
|
||||
module_param(debug, bool, 0644);
|
||||
MODULE_PARM_DESC(debug, "Show debug output");
|
||||
|
||||
MODULE_DESCRIPTION("IBM Premium Real Time Mode (PRTM) driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Keith Mannthey <kmmanth@us.ibm.com>");
|
||||
MODULE_AUTHOR("Vernon Mauery <vernux@us.ibm.com>");
|
||||
|
@ -38,6 +38,7 @@ MODULE_PARM_DESC(enable_sw_tablet_mode,
|
||||
/* When NOT in tablet mode, VGBS returns with the flag 0x40 */
|
||||
#define TABLET_MODE_FLAG BIT(6)
|
||||
|
||||
MODULE_DESCRIPTION("Intel HID Event hotkey driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Alex Hung");
|
||||
|
||||
|
@ -86,4 +86,5 @@ static void __exit pmc_core_platform_exit(void)
|
||||
|
||||
module_init(pmc_core_platform_init);
|
||||
module_exit(pmc_core_platform_exit);
|
||||
MODULE_DESCRIPTION("Intel PMC Core platform driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
MODULE_DESCRIPTION("Intel Rapid Start Technology Driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
static ssize_t irst_show_wakeup_events(struct device *dev,
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
MODULE_DESCRIPTION("Intel Smart Connect disabling driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
static int smartconnect_acpi_init(struct acpi_device *acpi)
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
#define VGBS_TABLET_MODE_FLAGS (VGBS_TABLET_MODE_FLAG | VGBS_TABLET_MODE_FLAG_ALT)
|
||||
|
||||
MODULE_DESCRIPTION("Intel Virtual Button driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("AceLan Kao");
|
||||
|
||||
|
@ -39,8 +39,6 @@ MODULE_LICENSE("GPL");
|
||||
#define WMI_METHOD_WMBB "2B4F501A-BD3C-4394-8DCF-00A7D2BC8210"
|
||||
#define WMI_EVENT_GUID WMI_EVENT_GUID0
|
||||
|
||||
#define WMAB_METHOD "\\XINI.WMAB"
|
||||
#define WMBB_METHOD "\\XINI.WMBB"
|
||||
#define SB_GGOV_METHOD "\\_SB.GGOV"
|
||||
#define GOV_TLED 0x2020008
|
||||
#define WM_GET 1
|
||||
@ -74,7 +72,7 @@ static u32 inited;
|
||||
|
||||
static int battery_limit_use_wmbb;
|
||||
static struct led_classdev kbd_backlight;
|
||||
static enum led_brightness get_kbd_backlight_level(void);
|
||||
static enum led_brightness get_kbd_backlight_level(struct device *dev);
|
||||
|
||||
static const struct key_entry wmi_keymap[] = {
|
||||
{KE_KEY, 0x70, {KEY_F15} }, /* LG control panel (F1) */
|
||||
@ -84,7 +82,6 @@ static const struct key_entry wmi_keymap[] = {
|
||||
* this key both sends an event and
|
||||
* changes backlight level.
|
||||
*/
|
||||
{KE_KEY, 0x80, {KEY_RFKILL} },
|
||||
{KE_END, 0}
|
||||
};
|
||||
|
||||
@ -128,11 +125,10 @@ static int ggov(u32 arg0)
|
||||
return res;
|
||||
}
|
||||
|
||||
static union acpi_object *lg_wmab(u32 method, u32 arg1, u32 arg2)
|
||||
static union acpi_object *lg_wmab(struct device *dev, u32 method, u32 arg1, u32 arg2)
|
||||
{
|
||||
union acpi_object args[3];
|
||||
acpi_status status;
|
||||
acpi_handle handle;
|
||||
struct acpi_object_list arg;
|
||||
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||
|
||||
@ -143,29 +139,22 @@ static union acpi_object *lg_wmab(u32 method, u32 arg1, u32 arg2)
|
||||
args[2].type = ACPI_TYPE_INTEGER;
|
||||
args[2].integer.value = arg2;
|
||||
|
||||
status = acpi_get_handle(NULL, (acpi_string) WMAB_METHOD, &handle);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
pr_err("Cannot get handle");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
arg.count = 3;
|
||||
arg.pointer = args;
|
||||
|
||||
status = acpi_evaluate_object(handle, NULL, &arg, &buffer);
|
||||
status = acpi_evaluate_object(ACPI_HANDLE(dev), "WMAB", &arg, &buffer);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
acpi_handle_err(handle, "WMAB: call failed.\n");
|
||||
dev_err(dev, "WMAB: call failed.\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return buffer.pointer;
|
||||
}
|
||||
|
||||
static union acpi_object *lg_wmbb(u32 method_id, u32 arg1, u32 arg2)
|
||||
static union acpi_object *lg_wmbb(struct device *dev, u32 method_id, u32 arg1, u32 arg2)
|
||||
{
|
||||
union acpi_object args[3];
|
||||
acpi_status status;
|
||||
acpi_handle handle;
|
||||
struct acpi_object_list arg;
|
||||
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||
u8 buf[32];
|
||||
@ -181,18 +170,12 @@ static union acpi_object *lg_wmbb(u32 method_id, u32 arg1, u32 arg2)
|
||||
args[2].buffer.length = 32;
|
||||
args[2].buffer.pointer = buf;
|
||||
|
||||
status = acpi_get_handle(NULL, (acpi_string)WMBB_METHOD, &handle);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
pr_err("Cannot get handle");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
arg.count = 3;
|
||||
arg.pointer = args;
|
||||
|
||||
status = acpi_evaluate_object(handle, NULL, &arg, &buffer);
|
||||
status = acpi_evaluate_object(ACPI_HANDLE(dev), "WMBB", &arg, &buffer);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
acpi_handle_err(handle, "WMAB: call failed.\n");
|
||||
dev_err(dev, "WMBB: call failed.\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -223,7 +206,7 @@ static void wmi_notify(u32 value, void *context)
|
||||
|
||||
if (eventcode == 0x10000000) {
|
||||
led_classdev_notify_brightness_hw_changed(
|
||||
&kbd_backlight, get_kbd_backlight_level());
|
||||
&kbd_backlight, get_kbd_backlight_level(kbd_backlight.dev->parent));
|
||||
} else {
|
||||
key = sparse_keymap_entry_from_scancode(
|
||||
wmi_input_dev, eventcode);
|
||||
@ -272,14 +255,7 @@ static void wmi_input_setup(void)
|
||||
|
||||
static void acpi_notify(struct acpi_device *device, u32 event)
|
||||
{
|
||||
struct key_entry *key;
|
||||
|
||||
acpi_handle_debug(device->handle, "notify: %d\n", event);
|
||||
if (inited & INIT_SPARSE_KEYMAP) {
|
||||
key = sparse_keymap_entry_from_scancode(wmi_input_dev, 0x80);
|
||||
if (key && key->type == KE_KEY)
|
||||
sparse_keymap_report_entry(wmi_input_dev, key, 1, true);
|
||||
}
|
||||
}
|
||||
|
||||
static ssize_t fan_mode_store(struct device *dev,
|
||||
@ -295,7 +271,7 @@ static ssize_t fan_mode_store(struct device *dev,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
r = lg_wmab(WM_FAN_MODE, WM_GET, 0);
|
||||
r = lg_wmab(dev, WM_FAN_MODE, WM_GET, 0);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -306,9 +282,9 @@ static ssize_t fan_mode_store(struct device *dev,
|
||||
|
||||
m = r->integer.value;
|
||||
kfree(r);
|
||||
r = lg_wmab(WM_FAN_MODE, WM_SET, (m & 0xffffff0f) | (value << 4));
|
||||
r = lg_wmab(dev, WM_FAN_MODE, WM_SET, (m & 0xffffff0f) | (value << 4));
|
||||
kfree(r);
|
||||
r = lg_wmab(WM_FAN_MODE, WM_SET, (m & 0xfffffff0) | value);
|
||||
r = lg_wmab(dev, WM_FAN_MODE, WM_SET, (m & 0xfffffff0) | value);
|
||||
kfree(r);
|
||||
|
||||
return count;
|
||||
@ -320,7 +296,7 @@ static ssize_t fan_mode_show(struct device *dev,
|
||||
unsigned int status;
|
||||
union acpi_object *r;
|
||||
|
||||
r = lg_wmab(WM_FAN_MODE, WM_GET, 0);
|
||||
r = lg_wmab(dev, WM_FAN_MODE, WM_GET, 0);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -347,7 +323,7 @@ static ssize_t usb_charge_store(struct device *dev,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
r = lg_wmbb(WMBB_USB_CHARGE, WM_SET, value);
|
||||
r = lg_wmbb(dev, WMBB_USB_CHARGE, WM_SET, value);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -361,7 +337,7 @@ static ssize_t usb_charge_show(struct device *dev,
|
||||
unsigned int status;
|
||||
union acpi_object *r;
|
||||
|
||||
r = lg_wmbb(WMBB_USB_CHARGE, WM_GET, 0);
|
||||
r = lg_wmbb(dev, WMBB_USB_CHARGE, WM_GET, 0);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -389,7 +365,7 @@ static ssize_t reader_mode_store(struct device *dev,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
r = lg_wmab(WM_READER_MODE, WM_SET, value);
|
||||
r = lg_wmab(dev, WM_READER_MODE, WM_SET, value);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -403,7 +379,7 @@ static ssize_t reader_mode_show(struct device *dev,
|
||||
unsigned int status;
|
||||
union acpi_object *r;
|
||||
|
||||
r = lg_wmab(WM_READER_MODE, WM_GET, 0);
|
||||
r = lg_wmab(dev, WM_READER_MODE, WM_GET, 0);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -431,7 +407,7 @@ static ssize_t fn_lock_store(struct device *dev,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
r = lg_wmab(WM_FN_LOCK, WM_SET, value);
|
||||
r = lg_wmab(dev, WM_FN_LOCK, WM_SET, value);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -445,7 +421,7 @@ static ssize_t fn_lock_show(struct device *dev,
|
||||
unsigned int status;
|
||||
union acpi_object *r;
|
||||
|
||||
r = lg_wmab(WM_FN_LOCK, WM_GET, 0);
|
||||
r = lg_wmab(dev, WM_FN_LOCK, WM_GET, 0);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -475,9 +451,9 @@ static ssize_t charge_control_end_threshold_store(struct device *dev,
|
||||
union acpi_object *r;
|
||||
|
||||
if (battery_limit_use_wmbb)
|
||||
r = lg_wmbb(WMBB_BATT_LIMIT, WM_SET, value);
|
||||
r = lg_wmbb(&pf_device->dev, WMBB_BATT_LIMIT, WM_SET, value);
|
||||
else
|
||||
r = lg_wmab(WM_BATT_LIMIT, WM_SET, value);
|
||||
r = lg_wmab(&pf_device->dev, WM_BATT_LIMIT, WM_SET, value);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -496,7 +472,7 @@ static ssize_t charge_control_end_threshold_show(struct device *device,
|
||||
union acpi_object *r;
|
||||
|
||||
if (battery_limit_use_wmbb) {
|
||||
r = lg_wmbb(WMBB_BATT_LIMIT, WM_GET, 0);
|
||||
r = lg_wmbb(&pf_device->dev, WMBB_BATT_LIMIT, WM_GET, 0);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -507,7 +483,7 @@ static ssize_t charge_control_end_threshold_show(struct device *device,
|
||||
|
||||
status = r->buffer.pointer[0x10];
|
||||
} else {
|
||||
r = lg_wmab(WM_BATT_LIMIT, WM_GET, 0);
|
||||
r = lg_wmab(&pf_device->dev, WM_BATT_LIMIT, WM_GET, 0);
|
||||
if (!r)
|
||||
return -EIO;
|
||||
|
||||
@ -586,7 +562,7 @@ static void tpad_led_set(struct led_classdev *cdev,
|
||||
{
|
||||
union acpi_object *r;
|
||||
|
||||
r = lg_wmab(WM_TLED, WM_SET, brightness > LED_OFF);
|
||||
r = lg_wmab(cdev->dev->parent, WM_TLED, WM_SET, brightness > LED_OFF);
|
||||
kfree(r);
|
||||
}
|
||||
|
||||
@ -608,16 +584,16 @@ static void kbd_backlight_set(struct led_classdev *cdev,
|
||||
val = 0;
|
||||
if (brightness >= LED_FULL)
|
||||
val = 0x24;
|
||||
r = lg_wmab(WM_KEY_LIGHT, WM_SET, val);
|
||||
r = lg_wmab(cdev->dev->parent, WM_KEY_LIGHT, WM_SET, val);
|
||||
kfree(r);
|
||||
}
|
||||
|
||||
static enum led_brightness get_kbd_backlight_level(void)
|
||||
static enum led_brightness get_kbd_backlight_level(struct device *dev)
|
||||
{
|
||||
union acpi_object *r;
|
||||
int val;
|
||||
|
||||
r = lg_wmab(WM_KEY_LIGHT, WM_GET, 0);
|
||||
r = lg_wmab(dev, WM_KEY_LIGHT, WM_GET, 0);
|
||||
|
||||
if (!r)
|
||||
return LED_OFF;
|
||||
@ -645,7 +621,7 @@ static enum led_brightness get_kbd_backlight_level(void)
|
||||
|
||||
static enum led_brightness kbd_backlight_get(struct led_classdev *cdev)
|
||||
{
|
||||
return get_kbd_backlight_level();
|
||||
return get_kbd_backlight_level(cdev->dev->parent);
|
||||
}
|
||||
|
||||
static LED_DEVICE(kbd_backlight, 255, LED_BRIGHT_HW_CHANGED);
|
||||
@ -672,6 +648,11 @@ static struct platform_driver pf_driver = {
|
||||
|
||||
static int acpi_add(struct acpi_device *device)
|
||||
{
|
||||
struct platform_device_info pdev_info = {
|
||||
.fwnode = acpi_fwnode_handle(device),
|
||||
.name = PLATFORM_NAME,
|
||||
.id = PLATFORM_DEVID_NONE,
|
||||
};
|
||||
int ret;
|
||||
const char *product;
|
||||
int year = 2017;
|
||||
@ -683,9 +664,7 @@ static int acpi_add(struct acpi_device *device)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
pf_device = platform_device_register_simple(PLATFORM_NAME,
|
||||
PLATFORM_DEVID_NONE,
|
||||
NULL, 0);
|
||||
pf_device = platform_device_register_full(&pdev_info);
|
||||
if (IS_ERR(pf_device)) {
|
||||
ret = PTR_ERR(pf_device);
|
||||
pf_device = NULL;
|
||||
@ -776,7 +755,7 @@ static void acpi_remove(struct acpi_device *device)
|
||||
}
|
||||
|
||||
static const struct acpi_device_id device_ids[] = {
|
||||
{"LGEX0815", 0},
|
||||
{"LGEX0820", 0},
|
||||
{"", 0}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(acpi, device_ids);
|
||||
|
@ -45,6 +45,7 @@ static struct platform_driver simatic_ipc_batt_driver = {
|
||||
|
||||
module_platform_driver(simatic_ipc_batt_driver);
|
||||
|
||||
MODULE_DESCRIPTION("CMOS Battery monitoring for Simatic IPCs based on Apollo Lake GPIO");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:" KBUILD_MODNAME);
|
||||
MODULE_SOFTDEP("pre: simatic-ipc-batt platform:apollolake-pinctrl");
|
||||
|
@ -45,6 +45,7 @@ static struct platform_driver simatic_ipc_batt_driver = {
|
||||
|
||||
module_platform_driver(simatic_ipc_batt_driver);
|
||||
|
||||
MODULE_DESCRIPTION("CMOS Battery monitoring for Simatic IPCs based on Elkhart Lake GPIO");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:" KBUILD_MODNAME);
|
||||
MODULE_SOFTDEP("pre: simatic-ipc-batt platform:elkhartlake-pinctrl");
|
||||
|
@ -81,6 +81,7 @@ static struct platform_driver simatic_ipc_batt_driver = {
|
||||
|
||||
module_platform_driver(simatic_ipc_batt_driver);
|
||||
|
||||
MODULE_DESCRIPTION("CMOS Battery monitoring for Simatic IPCs based on Nuvoton GPIO");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:" KBUILD_MODNAME);
|
||||
MODULE_SOFTDEP("pre: simatic-ipc-batt gpio_f7188x platform:elkhartlake-pinctrl platform:alderlake-pinctrl");
|
||||
|
@ -247,6 +247,7 @@ static struct platform_driver simatic_ipc_batt_driver = {
|
||||
|
||||
module_platform_driver(simatic_ipc_batt_driver);
|
||||
|
||||
MODULE_DESCRIPTION("CMOS core battery driver for Siemens Simatic IPCs");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:" KBUILD_MODNAME);
|
||||
MODULE_AUTHOR("Henning Schild <henning.schild@siemens.com>");
|
||||
|
@ -231,6 +231,7 @@ static void __exit simatic_ipc_exit_module(void)
|
||||
module_init(simatic_ipc_init_module);
|
||||
module_exit(simatic_ipc_exit_module);
|
||||
|
||||
MODULE_DESCRIPTION("Siemens SIMATIC IPC platform driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_AUTHOR("Gerd Haeussler <gerd.haeussler.ext@siemens.com>");
|
||||
MODULE_ALIAS("dmi:*:svnSIEMENSAG:*");
|
||||
|
@ -929,4 +929,5 @@ module_init(uv_sysfs_init);
|
||||
module_exit(uv_sysfs_exit);
|
||||
|
||||
MODULE_AUTHOR("Hewlett Packard Enterprise");
|
||||
MODULE_DESCRIPTION("Sysfs structure for HPE UV systems");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
@ -14,11 +14,13 @@
|
||||
#include <linux/acpi.h>
|
||||
#include <acpi/acpi_bus.h>
|
||||
|
||||
MODULE_DESCRIPTION("Airplane mode button for AMD, HP & Xiaomi laptops");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Alex Hung");
|
||||
MODULE_ALIAS("acpi*:HPQ6001:*");
|
||||
MODULE_ALIAS("acpi*:WSTADEF:*");
|
||||
MODULE_ALIAS("acpi*:AMDI0051:*");
|
||||
MODULE_ALIAS("acpi*:LGEX0815:*");
|
||||
|
||||
struct wl_button {
|
||||
struct input_dev *input_dev;
|
||||
@ -29,6 +31,7 @@ static const struct acpi_device_id wl_ids[] = {
|
||||
{"HPQ6001", 0},
|
||||
{"WSTADEF", 0},
|
||||
{"AMDI0051", 0},
|
||||
{"LGEX0815", 0},
|
||||
{"", 0},
|
||||
};
|
||||
|
||||
|
@ -74,5 +74,6 @@ static struct platform_driver xo1_rfkill_driver = {
|
||||
module_platform_driver(xo1_rfkill_driver);
|
||||
|
||||
MODULE_AUTHOR("Daniel Drake <dsd@laptop.org>");
|
||||
MODULE_DESCRIPTION("OLPC XO-1 software RF kill switch");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:xo1-rfkill");
|
||||
|
Loading…
x
Reference in New Issue
Block a user