ACPI: x86: Refactor _UID handling to use acpi_dev_uid_to_integer()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 13 Sep 2022 16:31:42 +0000 (19:31 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 19 Sep 2022 16:34:42 +0000 (18:34 +0200)
ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/x86/utils.c

index 664070f..2764b47 100644 (file)
@@ -351,11 +351,17 @@ int acpi_quirk_skip_serdev_enumeration(struct device *controller_parent, bool *s
        struct acpi_device *adev = ACPI_COMPANION(controller_parent);
        const struct dmi_system_id *dmi_id;
        long quirks = 0;
+       u64 uid;
+       int ret;
 
        *skip = false;
 
-       /* !dev_is_platform() to not match on PNP enumerated debug UARTs */
-       if (!adev || !adev->pnp.unique_id || !dev_is_platform(controller_parent))
+       ret = acpi_dev_uid_to_integer(adev, &uid);
+       if (ret)
+               return 0;
+
+       /* to not match on PNP enumerated debug UARTs */
+       if (!dev_is_platform(controller_parent))
                return 0;
 
        dmi_id = dmi_first_match(acpi_quirk_skip_dmi_ids);
@@ -363,10 +369,10 @@ int acpi_quirk_skip_serdev_enumeration(struct device *controller_parent, bool *s
                quirks = (unsigned long)dmi_id->driver_data;
 
        if (quirks & ACPI_QUIRK_UART1_TTY_UART2_SKIP) {
-               if (!strcmp(adev->pnp.unique_id, "1"))
+               if (uid == 1)
                        return -ENODEV; /* Create tty cdev instead of serdev */
 
-               if (!strcmp(adev->pnp.unique_id, "2"))
+               if (uid == 2)
                        *skip = true;
        }