platform/x86: acer-wmi: Switch to acpi_dev_get_first_match_dev()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 23 Jul 2019 20:34:11 +0000 (23:34 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 30 Jul 2019 11:12:51 +0000 (14:12 +0300)
The acpi_dev_get_first_match_dev() helper will find and return
an ACPI device pointer of the first registered device in the system
by its HID.

Use it instead of open coded variant.

Cc: Chun-Yi Lee <jlee@suse.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/acer-wmi.c

index 62b54e1..60c18f2 100644 (file)
@@ -1881,52 +1881,17 @@ static int __init acer_wmi_enable_rf_button(void)
        return status;
 }
 
-#define ACER_WMID_ACCEL_HID    "BST0001"
-
-static acpi_status __init acer_wmi_get_handle_cb(acpi_handle ah, u32 level,
-                                               void *ctx, void **retval)
-{
-       struct acpi_device *dev;
-
-       if (!strcmp(ctx, "SENR")) {
-               if (acpi_bus_get_device(ah, &dev))
-                       return AE_OK;
-               if (strcmp(ACER_WMID_ACCEL_HID, acpi_device_hid(dev)))
-                       return AE_OK;
-       } else
-               return AE_OK;
-
-       *(acpi_handle *)retval = ah;
-
-       return AE_CTRL_TERMINATE;
-}
-
-static int __init acer_wmi_get_handle(const char *name, const char *prop,
-                                       acpi_handle *ah)
-{
-       acpi_status status;
-       acpi_handle handle;
-
-       BUG_ON(!name || !ah);
-
-       handle = NULL;
-       status = acpi_get_devices(prop, acer_wmi_get_handle_cb,
-                                       (void *)name, &handle);
-       if (ACPI_SUCCESS(status) && handle) {
-               *ah = handle;
-               return 0;
-       } else {
-               return -ENODEV;
-       }
-}
-
 static int __init acer_wmi_accel_setup(void)
 {
+       struct acpi_device *adev;
        int err;
 
-       err = acer_wmi_get_handle("SENR", ACER_WMID_ACCEL_HID, &gsensor_handle);
-       if (err)
-               return err;
+       adev = acpi_dev_get_first_match_dev("BST0001", NULL, -1);
+       if (!adev)
+               return -ENODEV;
+
+       gsensor_handle = acpi_device_handle(adev);
+       acpi_dev_put(adev);
 
        interface->capability |= ACER_CAP_ACCEL;