platform/x86: wmi: Pass the acpi_device through to parse_wdg
authorAndy Lutomirski <luto@kernel.org>
Thu, 19 Nov 2015 22:44:46 +0000 (14:44 -0800)
committerDarren Hart (VMware) <dvhart@infradead.org>
Tue, 6 Jun 2017 17:15:17 +0000 (10:15 -0700)
We will need the device to convert to a bus architecture and bind WMI to
the platform device.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Mario Limonciello <mario_limonciello@dell.com>
Cc: Pali Rohár <pali.rohar@gmail.com>
Cc: linux-kernel@vger.kernel.org
Cc: platform-driver-x86@vger.kernel.org
Cc: linux-acpi@vger.kernel.org
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
drivers/platform/x86/wmi.c

index 0043581402391b7806b91f0fb80d0fbca0faf354..c6e11b573ef3a6318f1610f222ec1c5d6237ec1e 100644 (file)
@@ -606,7 +606,8 @@ static struct class wmi_class = {
 };
 
 static int wmi_create_device(const struct guid_block *gblock,
-                            struct wmi_block *wblock, acpi_handle handle)
+                            struct wmi_block *wblock,
+                            struct acpi_device *device)
 {
        wblock->dev.class = &wmi_class;
 
@@ -645,7 +646,7 @@ static bool guid_already_parsed(const char *guid_string)
 /*
  * Parse the _WDG method for the GUID data blocks
  */
-static int parse_wdg(acpi_handle handle)
+static int parse_wdg(struct acpi_device *device)
 {
        struct acpi_buffer out = {ACPI_ALLOCATE_BUFFER, NULL};
        union acpi_object *obj;
@@ -655,7 +656,7 @@ static int parse_wdg(acpi_handle handle)
        int retval;
        u32 i, total;
 
-       status = acpi_evaluate_object(handle, "_WDG", NULL, &out);
+       status = acpi_evaluate_object(device->handle, "_WDG", NULL, &out);
        if (ACPI_FAILURE(status))
                return -ENXIO;
 
@@ -679,7 +680,7 @@ static int parse_wdg(acpi_handle handle)
                if (!wblock)
                        return -ENOMEM;
 
-               wblock->handle = handle;
+               wblock->handle = device->handle;
                wblock->gblock = gblock[i];
 
                /*
@@ -689,7 +690,7 @@ static int parse_wdg(acpi_handle handle)
                  for device creation.
                */
                if (!guid_already_parsed(gblock[i].guid)) {
-                       retval = wmi_create_device(&gblock[i], wblock, handle);
+                       retval = wmi_create_device(&gblock[i], wblock, device);
                        if (retval) {
                                wmi_free_devices();
                                goto out_free_pointer;
@@ -806,7 +807,7 @@ static int acpi_wmi_add(struct acpi_device *device)
                return -ENODEV;
        }
 
-       error = parse_wdg(device->handle);
+       error = parse_wdg(device);
        if (error) {
                acpi_remove_address_space_handler(device->handle,
                                                  ACPI_ADR_SPACE_EC,