X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Ffirmware%2Fdmi_scan.c;h=b8b596d5778dbe03295395eccbad2176a25c3bfa;hb=1c7da74c4aab595a994beb5fe728ebf0d0b41f59;hp=b9e3886d9e1618cc4b85345e81a8a2c23fb876ea;hpb=62ed948cb1405fe95d61d8c6445c102e0c9da0a6;p=linux-2.6-omap-h63xx.git diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index b9e3886d9e1..b8b596d5778 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c @@ -123,6 +123,26 @@ static void __init dmi_save_devices(struct dmi_header *dm) dev->type = *d++ & 0x7f; dev->name = dmi_string(dm, *d); dev->device_data = NULL; + list_add(&dev->list, &dmi_devices); + } +} + +static void __init dmi_save_oem_strings_devices(struct dmi_header *dm) +{ + int i, count = *(u8 *)(dm + 1); + struct dmi_device *dev; + + for (i = 1; i <= count; i++) { + dev = dmi_alloc(sizeof(*dev)); + if (!dev) { + printk(KERN_ERR + "dmi_save_oem_strings_devices: out of memory.\n"); + break; + } + + dev->type = DMI_DEV_TYPE_OEM_STRING; + dev->name = dmi_string(dm, i); + dev->device_data = NULL; list_add(&dev->list, &dmi_devices); } @@ -181,6 +201,9 @@ static void __init dmi_decode(struct dmi_header *dm) case 10: /* Onboard Devices Information */ dmi_save_devices(dm); break; + case 11: /* OEM Strings */ + dmi_save_oem_strings_devices(dm); + break; case 38: /* IPMI Device Information */ dmi_save_ipmi_device(dm); }