Commit 4d3f5d04 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'platform-drivers-x86-v4.13-3' of git://git.infradead.org/linux-platform-drivers-x86

Pull x86 platform driver fixes from Darren Hart:
 "Fix two bugs under error or abnormal usage conditions. Correct a
  config dependency:

  dell-wmi:
   - Fix driver interface version query

  wmi:
   - Fix error handling in acpi_wmi_init()

  peaq-wmi:
   - select INPUT_POLLDEV"

* tag 'platform-drivers-x86-v4.13-3' of git://git.infradead.org/linux-platform-drivers-x86:
  platform/x86: dell-wmi: Fix driver interface version query
  platform/x86: wmi: Fix error handling in acpi_wmi_init()
  platform/x86: peaq-wmi: select INPUT_POLLDEV
parents 33611ba0 51391caf
...@@ -675,6 +675,7 @@ config PEAQ_WMI ...@@ -675,6 +675,7 @@ config PEAQ_WMI
tristate "PEAQ 2-in-1 WMI hotkey driver" tristate "PEAQ 2-in-1 WMI hotkey driver"
depends on ACPI_WMI depends on ACPI_WMI
depends on INPUT depends on INPUT
select INPUT_POLLDEV
help help
Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s. Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s.
......
...@@ -626,7 +626,7 @@ static void dell_wmi_input_destroy(struct wmi_device *wdev) ...@@ -626,7 +626,7 @@ static void dell_wmi_input_destroy(struct wmi_device *wdev)
* WMI Interface Version 8 4 <version> * WMI Interface Version 8 4 <version>
* WMI buffer length 12 4 4096 * WMI buffer length 12 4 4096
*/ */
static int __init dell_wmi_check_descriptor_buffer(void) static int dell_wmi_check_descriptor_buffer(void)
{ {
struct acpi_buffer out = { ACPI_ALLOCATE_BUFFER, NULL }; struct acpi_buffer out = { ACPI_ALLOCATE_BUFFER, NULL };
union acpi_object *obj; union acpi_object *obj;
...@@ -717,9 +717,15 @@ static int dell_wmi_events_set_enabled(bool enable) ...@@ -717,9 +717,15 @@ static int dell_wmi_events_set_enabled(bool enable)
static int dell_wmi_probe(struct wmi_device *wdev) static int dell_wmi_probe(struct wmi_device *wdev)
{ {
int err;
struct dell_wmi_priv *priv = devm_kzalloc( struct dell_wmi_priv *priv = devm_kzalloc(
&wdev->dev, sizeof(struct dell_wmi_priv), GFP_KERNEL); &wdev->dev, sizeof(struct dell_wmi_priv), GFP_KERNEL);
err = dell_wmi_check_descriptor_buffer();
if (err)
return err;
dev_set_drvdata(&wdev->dev, priv); dev_set_drvdata(&wdev->dev, priv);
return dell_wmi_input_setup(wdev); return dell_wmi_input_setup(wdev);
...@@ -749,10 +755,6 @@ static int __init dell_wmi_init(void) ...@@ -749,10 +755,6 @@ static int __init dell_wmi_init(void)
{ {
int err; int err;
err = dell_wmi_check_descriptor_buffer();
if (err)
return err;
dmi_check_system(dell_wmi_smbios_list); dmi_check_system(dell_wmi_smbios_list);
if (wmi_requires_smbios_request) { if (wmi_requires_smbios_request) {
......
...@@ -1252,12 +1252,12 @@ static int __init acpi_wmi_init(void) ...@@ -1252,12 +1252,12 @@ static int __init acpi_wmi_init(void)
return 0; return 0;
err_unreg_class:
class_unregister(&wmi_bus_class);
err_unreg_bus: err_unreg_bus:
bus_unregister(&wmi_bus_type); bus_unregister(&wmi_bus_type);
err_unreg_class:
class_unregister(&wmi_bus_class);
return error; return error;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment