]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/firmware/dmi_scan.c
x86: avoid unused variable warning in mm/init_64.c
[linux-2.6-omap-h63xx.git] / drivers / firmware / dmi_scan.c
index 1412d7bcdbd195f7cfb0d0c46f63ddd772a1c5f1..653265a40b7f9721eed8fcf1c08d6f75cdfdba3d 100644 (file)
@@ -250,6 +250,28 @@ static void __init dmi_save_ipmi_device(const struct dmi_header *dm)
        list_add(&dev->list, &dmi_devices);
 }
 
+static void __init dmi_save_extended_devices(const struct dmi_header *dm)
+{
+       const u8 *d = (u8*) dm + 5;
+       struct dmi_device *dev;
+
+       /* Skip disabled device */
+       if ((*d & 0x80) == 0)
+               return;
+
+       dev = dmi_alloc(sizeof(*dev));
+       if (!dev) {
+               printk(KERN_ERR "dmi_save_extended_devices: out of memory.\n");
+               return;
+       }
+
+       dev->type = *d-- & 0x7f;
+       dev->name = dmi_string(dm, *d);
+       dev->device_data = NULL;
+
+       list_add(&dev->list, &dmi_devices);
+}
+
 /*
  *     Process a DMI table entry. Right now all we care about are the BIOS
  *     and machine entries. For 2.5 we should pull the smbus controller info
@@ -292,6 +314,9 @@ static void __init dmi_decode(const struct dmi_header *dm)
                break;
        case 38:        /* IPMI Device Information */
                dmi_save_ipmi_device(dm);
+               break;
+       case 41:        /* Onboard Devices Extended Information */
+               dmi_save_extended_devices(dm);
        }
 }