hwmon: (asus_atk0110) Do not fail if MBIF is missing
authorLuca Tettamanti <kronos.it@gmail.com>
Mon, 25 Jan 2010 14:00:49 +0000 (15:00 +0100)
committerJean Delvare <khali@linux-fr.org>
Mon, 25 Jan 2010 14:00:49 +0000 (15:00 +0100)
MBIF (motherboard identification) is only used to print the name of
the board, it's not essential for the driver; do not fail if it's
missing. Based on Juan's patch.

Signed-off-by: Luca Tettamanti <kronos.it@gmail.com>
Acked-by: Juan RP <xtraeme@gmail.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
drivers/hwmon/asus_atk0110.c

index 6811346..028284f 100644 (file)
@@ -1329,17 +1329,16 @@ static int atk_add(struct acpi_device *device)
                        &buf, ACPI_TYPE_PACKAGE);
        if (ret != AE_OK) {
                dev_dbg(&device->dev, "atk: method MBIF not found\n");
-               err = -ENODEV;
-               goto out;
-       }
-
-       obj = buf.pointer;
-       if (obj->package.count >= 2 &&
-                       obj->package.elements[1].type == ACPI_TYPE_STRING) {
-               dev_dbg(&device->dev, "board ID = %s\n",
-                               obj->package.elements[1].string.pointer);
+       } else {
+               obj = buf.pointer;
+               if (obj->package.count >= 2) {
+                       union acpi_object *id = &obj->package.elements[1];
+                       if (id->type == ACPI_TYPE_STRING)
+                               dev_dbg(&device->dev, "board ID = %s\n",
+                                       id->string.pointer);
+               }
+               ACPI_FREE(buf.pointer);
        }
-       ACPI_FREE(buf.pointer);
 
        err = atk_probe_if(data);
        if (err) {