mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 14:42:18 -04:00
Merge tag 'platform-drivers-x86-v5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
Pull x86 platform driver fixes from Hans de Goede:
"Two last minute small but important fixes.
The hp-wmi change fixes an issue which is actively being hit by users:
https://bugzilla.redhat.com/show_bug.cgi?id=1918255
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3564
And the dell-wmi-sysman patch fixes a bug in the new dell-wmi-sysman
driver which causes some systems to hang at boot when the driver
loads"
* tag 'platform-drivers-x86-v5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
platform/x86: dell-wmi-sysman: fix a NULL pointer dereference
platform/x86: hp-wmi: Disable tablet-mode reporting by default
This commit is contained in:
@@ -419,13 +419,17 @@ static int init_bios_attributes(int attr_type, const char *guid)
|
||||
return retval;
|
||||
/* need to use specific instance_id and guid combination to get right data */
|
||||
obj = get_wmiobj_pointer(instance_id, guid);
|
||||
if (!obj)
|
||||
if (!obj || obj->type != ACPI_TYPE_PACKAGE)
|
||||
return -ENODEV;
|
||||
elements = obj->package.elements;
|
||||
|
||||
mutex_lock(&wmi_priv.mutex);
|
||||
while (elements) {
|
||||
/* sanity checking */
|
||||
if (elements[ATTR_NAME].type != ACPI_TYPE_STRING) {
|
||||
pr_debug("incorrect element type\n");
|
||||
goto nextobj;
|
||||
}
|
||||
if (strlen(elements[ATTR_NAME].string.pointer) == 0) {
|
||||
pr_debug("empty attribute found\n");
|
||||
goto nextobj;
|
||||
|
||||
@@ -32,6 +32,10 @@ MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("wmi:95F24279-4D7B-4334-9387-ACCDC67EF61C");
|
||||
MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4");
|
||||
|
||||
static int enable_tablet_mode_sw = -1;
|
||||
module_param(enable_tablet_mode_sw, int, 0444);
|
||||
MODULE_PARM_DESC(enable_tablet_mode_sw, "Enable SW_TABLET_MODE reporting (-1=auto, 0=no, 1=yes)");
|
||||
|
||||
#define HPWMI_EVENT_GUID "95F24279-4D7B-4334-9387-ACCDC67EF61C"
|
||||
#define HPWMI_BIOS_GUID "5FB7F034-2C63-45e9-BE91-3D44E2C707E4"
|
||||
|
||||
@@ -654,10 +658,12 @@ static int __init hp_wmi_input_setup(void)
|
||||
}
|
||||
|
||||
/* Tablet mode */
|
||||
val = hp_wmi_hw_state(HPWMI_TABLET_MASK);
|
||||
if (!(val < 0)) {
|
||||
__set_bit(SW_TABLET_MODE, hp_wmi_input_dev->swbit);
|
||||
input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE, val);
|
||||
if (enable_tablet_mode_sw > 0) {
|
||||
val = hp_wmi_hw_state(HPWMI_TABLET_MASK);
|
||||
if (val >= 0) {
|
||||
__set_bit(SW_TABLET_MODE, hp_wmi_input_dev->swbit);
|
||||
input_report_switch(hp_wmi_input_dev, SW_TABLET_MODE, val);
|
||||
}
|
||||
}
|
||||
|
||||
err = sparse_keymap_setup(hp_wmi_input_dev, hp_wmi_keymap, NULL);
|
||||
|
||||
Reference in New Issue
Block a user