i2c: i801: Improve is_dell_system_with_lis3lv02d
authorHeiner Kallweit <hkallweit1@gmail.com>
Fri, 6 Aug 2021 21:15:15 +0000 (23:15 +0200)
committerWolfram Sang <wsa@kernel.org>
Wed, 29 Sep 2021 19:36:35 +0000 (21:36 +0200)
Replace the ugly cast of the return_value pointer with proper usage.
In addition use dmi_match() instead of open-coding it.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-i801.c

index 89ae78e..f56060f 100644 (file)
@@ -1192,7 +1192,7 @@ static acpi_status check_acpi_smo88xx_device(acpi_handle obj_handle,
 
        kfree(info);
 
-       *((bool *)return_value) = true;
+       *return_value = NULL;
        return AE_CTRL_TERMINATE;
 
 smo88xx_not_found:
@@ -1202,11 +1202,9 @@ smo88xx_not_found:
 
 static bool is_dell_system_with_lis3lv02d(void)
 {
-       bool found;
-       const char *vendor;
+       void *err = ERR_PTR(-ENOENT);
 
-       vendor = dmi_get_system_info(DMI_SYS_VENDOR);
-       if (!vendor || strcmp(vendor, "Dell Inc."))
+       if (!dmi_match(DMI_SYS_VENDOR, "Dell Inc."))
                return false;
 
        /*
@@ -1217,11 +1215,9 @@ static bool is_dell_system_with_lis3lv02d(void)
         * accelerometer but unfortunately ACPI does not provide any other
         * information (like I2C address).
         */
-       found = false;
-       acpi_get_devices(NULL, check_acpi_smo88xx_device, NULL,
-                        (void **)&found);
+       acpi_get_devices(NULL, check_acpi_smo88xx_device, NULL, &err);
 
-       return found;
+       return !IS_ERR(err);
 }
 
 /*