diff options
| -rw-r--r-- | drivers/acpi/blacklist.c | 56 | ||||
| -rw-r--r-- | drivers/acpi/osl.c | 16 | ||||
| -rw-r--r-- | drivers/firmware/dmi_scan.c | 9 | ||||
| -rw-r--r-- | include/linux/dmi.h | 2 |
4 files changed, 44 insertions, 39 deletions
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index 3ade01680989..6dbaa2d15fe0 100644 --- a/drivers/acpi/blacklist.c +++ b/drivers/acpi/blacklist.c | |||
| @@ -206,33 +206,35 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 206 | * Disable OSI(Linux) warnings on all "Acer, inc." | 206 | * Disable OSI(Linux) warnings on all "Acer, inc." |
| 207 | * | 207 | * |
| 208 | * _OSI(Linux) disables the latest Windows BIOS code: | 208 | * _OSI(Linux) disables the latest Windows BIOS code: |
| 209 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 3100"), | ||
| 209 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5050"), | 210 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5050"), |
| 211 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5100"), | ||
| 210 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5580"), | 212 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5580"), |
| 211 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 3010"), | 213 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 3010"), |
| 212 | * _OSI(Linux) effect unknown: | 214 | * _OSI(Linux) effect unknown: |
| 213 | * DMI_MATCH(DMI_PRODUCT_NAME, "Ferrari 5000"), | 215 | * DMI_MATCH(DMI_PRODUCT_NAME, "Ferrari 5000"), |
| 214 | */ | 216 | */ |
| 215 | { | 217 | /* |
| 216 | .callback = dmi_disable_osi_linux, | 218 | * note that dmi_check_system() uses strstr() |
| 217 | .ident = "Acer, inc.", | 219 | * to match sub-strings rather than !strcmp(), |
| 218 | .matches = { | 220 | * so "Acer" below matches "Acer, inc." above. |
| 219 | DMI_MATCH(DMI_SYS_VENDOR, "Acer, inc."), | 221 | */ |
| 220 | }, | ||
| 221 | }, | ||
| 222 | /* | 222 | /* |
| 223 | * Disable OSI(Linux) warnings on all "Acer" | 223 | * Disable OSI(Linux) warnings on all "Acer" |
| 224 | * | 224 | * |
| 225 | * _OSI(Linux) effect unknown: | 225 | * _OSI(Linux) effect unknown: |
| 226 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5100"), | ||
| 227 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"), | 226 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"), |
| 228 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720Z"), | 227 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720Z"), |
| 229 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5520"), | 228 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5520"), |
| 230 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 6460"), | 229 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 6460"), |
| 231 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 7510"), | 230 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 7510"), |
| 232 | * DMI_MATCH(DMI_PRODUCT_NAME, "Extensa 5220"), | 231 | * DMI_MATCH(DMI_PRODUCT_NAME, "Extensa 5220"), |
| 232 | * | ||
| 233 | * _OSI(Linux) is a NOP: | ||
| 234 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5315"), | ||
| 233 | */ | 235 | */ |
| 234 | { | 236 | { |
| 235 | .callback = dmi_unknown_osi_linux, | 237 | .callback = dmi_disable_osi_linux, |
| 236 | .ident = "Acer", | 238 | .ident = "Acer", |
| 237 | .matches = { | 239 | .matches = { |
| 238 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | 240 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), |
| @@ -240,21 +242,22 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 240 | }, | 242 | }, |
| 241 | /* | 243 | /* |
| 242 | * Disable OSI(Linux) warnings on all "Apple Computer, Inc." | 244 | * Disable OSI(Linux) warnings on all "Apple Computer, Inc." |
| 245 | * Disable OSI(Linux) warnings on all "Apple Inc." | ||
| 243 | * | 246 | * |
| 244 | * _OSI(Linux) confirmed to be a NOP: | 247 | * _OSI(Linux) confirmed to be a NOP: |
| 245 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"), | 248 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"), |
| 246 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook2,1"), | 249 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook2,1"), |
| 247 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro2,2"), | 250 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro2,2"), |
| 251 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro3,1"), | ||
| 248 | * _OSI(Linux) effect unknown: | 252 | * _OSI(Linux) effect unknown: |
| 249 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacPro2,1"), | 253 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacPro2,1"), |
| 250 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro1,1"), | 254 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro1,1"), |
| 251 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro3,1"), | ||
| 252 | */ | 255 | */ |
| 253 | { | 256 | { |
| 254 | .callback = dmi_disable_osi_linux, | 257 | .callback = dmi_disable_osi_linux, |
| 255 | .ident = "Apple", | 258 | .ident = "Apple", |
| 256 | .matches = { | 259 | .matches = { |
| 257 | DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."), | 260 | DMI_MATCH(DMI_SYS_VENDOR, "Apple"), |
| 258 | }, | 261 | }, |
| 259 | }, | 262 | }, |
| 260 | /* | 263 | /* |
| @@ -292,13 +295,13 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 292 | * DMI_MATCH(DMI_BOARD_NAME, "IFL91"), | 295 | * DMI_MATCH(DMI_BOARD_NAME, "IFL91"), |
| 293 | */ | 296 | */ |
| 294 | { | 297 | { |
| 295 | .callback = dmi_unknown_osi_linux, | 298 | .callback = dmi_disable_osi_linux, |
| 296 | .ident = "Compal", | 299 | .ident = "Compal", |
| 297 | .matches = { | 300 | .matches = { |
| 298 | DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"), | 301 | DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"), |
| 299 | }, | 302 | }, |
| 300 | }, | 303 | }, |
| 301 | { /* OSI(Linux) touches USB, breaks suspend to disk */ | 304 | { /* OSI(Linux) touches USB, unknown side-effect */ |
| 302 | .callback = dmi_disable_osi_linux, | 305 | .callback = dmi_disable_osi_linux, |
| 303 | .ident = "Dell Dimension 5150", | 306 | .ident = "Dell Dimension 5150", |
| 304 | .matches = { | 307 | .matches = { |
| @@ -308,7 +311,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 308 | }, | 311 | }, |
| 309 | { /* OSI(Linux) is a NOP */ | 312 | { /* OSI(Linux) is a NOP */ |
| 310 | .callback = dmi_disable_osi_linux, | 313 | .callback = dmi_disable_osi_linux, |
| 311 | .ident = "Dell", | 314 | .ident = "Dell i1501", |
| 312 | .matches = { | 315 | .matches = { |
| 313 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | 316 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 314 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1501"), | 317 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1501"), |
| @@ -316,7 +319,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 316 | }, | 319 | }, |
| 317 | { /* OSI(Linux) effect unknown */ | 320 | { /* OSI(Linux) effect unknown */ |
| 318 | .callback = dmi_unknown_osi_linux, | 321 | .callback = dmi_unknown_osi_linux, |
| 319 | .ident = "Dell", | 322 | .ident = "Dell Latitude D830", |
| 320 | .matches = { | 323 | .matches = { |
| 321 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | 324 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 322 | DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D830"), | 325 | DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D830"), |
| @@ -324,7 +327,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 324 | }, | 327 | }, |
| 325 | { /* OSI(Linux) effect unknown */ | 328 | { /* OSI(Linux) effect unknown */ |
| 326 | .callback = dmi_unknown_osi_linux, | 329 | .callback = dmi_unknown_osi_linux, |
| 327 | .ident = "Dell", | 330 | .ident = "Dell OP GX620", |
| 328 | .matches = { | 331 | .matches = { |
| 329 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | 332 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 330 | DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex GX620"), | 333 | DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex GX620"), |
| @@ -332,15 +335,23 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 332 | }, | 335 | }, |
| 333 | { /* OSI(Linux) effect unknown */ | 336 | { /* OSI(Linux) effect unknown */ |
| 334 | .callback = dmi_unknown_osi_linux, | 337 | .callback = dmi_unknown_osi_linux, |
| 335 | .ident = "Dell", | 338 | .ident = "Dell PE 1900", |
| 336 | .matches = { | 339 | .matches = { |
| 337 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | 340 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 338 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1900"), | 341 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1900"), |
| 339 | }, | 342 | }, |
| 340 | }, | 343 | }, |
| 344 | { /* OSI(Linux) is a NOP */ | ||
| 345 | .callback = dmi_disable_osi_linux, | ||
| 346 | .ident = "Dell PE R200", | ||
| 347 | .matches = { | ||
| 348 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
| 349 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R200"), | ||
| 350 | }, | ||
| 351 | }, | ||
| 341 | { /* OSI(Linux) touches USB */ | 352 | { /* OSI(Linux) touches USB */ |
| 342 | .callback = dmi_disable_osi_linux, | 353 | .callback = dmi_disable_osi_linux, |
| 343 | .ident = "Dell", | 354 | .ident = "Dell PR 390", |
| 344 | .matches = { | 355 | .matches = { |
| 345 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | 356 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 346 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation 390"), | 357 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation 390"), |
| @@ -356,7 +367,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 356 | }, | 367 | }, |
| 357 | { /* OSI(Linux) effect unknown */ | 368 | { /* OSI(Linux) effect unknown */ |
| 358 | .callback = dmi_unknown_osi_linux, | 369 | .callback = dmi_unknown_osi_linux, |
| 359 | .ident = "Dell", | 370 | .ident = "Dell PE SC440", |
| 360 | .matches = { | 371 | .matches = { |
| 361 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | 372 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), |
| 362 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge SC440"), | 373 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge SC440"), |
| @@ -472,6 +483,11 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 472 | * | 483 | * |
| 473 | * _OSI(Linux) confirmed to be a NOP: | 484 | * _OSI(Linux) confirmed to be a NOP: |
| 474 | * DMI_MATCH(DMI_PRODUCT_NAME, "P1-J150B"), | 485 | * DMI_MATCH(DMI_PRODUCT_NAME, "P1-J150B"), |
| 486 | * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"), | ||
| 487 | * | ||
| 488 | * unknown: | ||
| 489 | * DMI_MATCH(DMI_PRODUCT_NAME, "S1-MDGDG"), | ||
| 490 | * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"), | ||
| 475 | */ | 491 | */ |
| 476 | { | 492 | { |
| 477 | .callback = dmi_disable_osi_linux, | 493 | .callback = dmi_disable_osi_linux, |
| @@ -514,7 +530,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 514 | * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ11M"), | 530 | * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ11M"), |
| 515 | */ | 531 | */ |
| 516 | { | 532 | { |
| 517 | .callback = dmi_unknown_osi_linux, | 533 | .callback = dmi_disable_osi_linux, |
| 518 | .ident = "Sony", | 534 | .ident = "Sony", |
| 519 | .matches = { | 535 | .matches = { |
| 520 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), | 536 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index e96f3d933f67..9772a48f36f1 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
| @@ -120,7 +120,7 @@ static char osi_additional_string[OSI_STRING_LENGTH_MAX]; | |||
| 120 | */ | 120 | */ |
| 121 | #define OSI_LINUX_ENABLE 0 | 121 | #define OSI_LINUX_ENABLE 0 |
| 122 | 122 | ||
| 123 | struct osi_linux { | 123 | static struct osi_linux { |
| 124 | unsigned int enable:1; | 124 | unsigned int enable:1; |
| 125 | unsigned int dmi:1; | 125 | unsigned int dmi:1; |
| 126 | unsigned int cmdline:1; | 126 | unsigned int cmdline:1; |
| @@ -1217,24 +1217,24 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object) | |||
| 1217 | * | 1217 | * |
| 1218 | * Returns 0 on success | 1218 | * Returns 0 on success |
| 1219 | */ | 1219 | */ |
| 1220 | int acpi_dmi_dump(void) | 1220 | static int acpi_dmi_dump(void) |
| 1221 | { | 1221 | { |
| 1222 | 1222 | ||
| 1223 | if (!dmi_available) | 1223 | if (!dmi_available) |
| 1224 | return -1; | 1224 | return -1; |
| 1225 | 1225 | ||
| 1226 | printk(KERN_NOTICE PREFIX "DMI System Vendor: %s\n", | 1226 | printk(KERN_NOTICE PREFIX "DMI System Vendor: %s\n", |
| 1227 | dmi_get_slot(DMI_SYS_VENDOR)); | 1227 | dmi_get_system_info(DMI_SYS_VENDOR)); |
| 1228 | printk(KERN_NOTICE PREFIX "DMI Product Name: %s\n", | 1228 | printk(KERN_NOTICE PREFIX "DMI Product Name: %s\n", |
| 1229 | dmi_get_slot(DMI_PRODUCT_NAME)); | 1229 | dmi_get_system_info(DMI_PRODUCT_NAME)); |
| 1230 | printk(KERN_NOTICE PREFIX "DMI Product Version: %s\n", | 1230 | printk(KERN_NOTICE PREFIX "DMI Product Version: %s\n", |
| 1231 | dmi_get_slot(DMI_PRODUCT_VERSION)); | 1231 | dmi_get_system_info(DMI_PRODUCT_VERSION)); |
| 1232 | printk(KERN_NOTICE PREFIX "DMI Board Name: %s\n", | 1232 | printk(KERN_NOTICE PREFIX "DMI Board Name: %s\n", |
| 1233 | dmi_get_slot(DMI_BOARD_NAME)); | 1233 | dmi_get_system_info(DMI_BOARD_NAME)); |
| 1234 | printk(KERN_NOTICE PREFIX "DMI BIOS Vendor: %s\n", | 1234 | printk(KERN_NOTICE PREFIX "DMI BIOS Vendor: %s\n", |
| 1235 | dmi_get_slot(DMI_BIOS_VENDOR)); | 1235 | dmi_get_system_info(DMI_BIOS_VENDOR)); |
| 1236 | printk(KERN_NOTICE PREFIX "DMI BIOS Date: %s\n", | 1236 | printk(KERN_NOTICE PREFIX "DMI BIOS Date: %s\n", |
| 1237 | dmi_get_slot(DMI_BIOS_DATE)); | 1237 | dmi_get_system_info(DMI_BIOS_DATE)); |
| 1238 | 1238 | ||
| 1239 | return 0; | 1239 | return 0; |
| 1240 | } | 1240 | } |
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 9008ed5ef4ce..e0bade732376 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c | |||
| @@ -489,12 +489,3 @@ int dmi_get_year(int field) | |||
| 489 | 489 | ||
| 490 | return year; | 490 | return year; |
| 491 | } | 491 | } |
| 492 | |||
| 493 | /** | ||
| 494 | * dmi_get_slot - return dmi_ident[slot] | ||
| 495 | * @slot: index into dmi_ident[] | ||
| 496 | */ | ||
| 497 | char *dmi_get_slot(int slot) | ||
| 498 | { | ||
| 499 | return(dmi_ident[slot]); | ||
| 500 | } | ||
diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 5b42a659a308..b1251b2af568 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h | |||
| @@ -79,7 +79,6 @@ extern void dmi_scan_machine(void); | |||
| 79 | extern int dmi_get_year(int field); | 79 | extern int dmi_get_year(int field); |
| 80 | extern int dmi_name_in_vendors(const char *str); | 80 | extern int dmi_name_in_vendors(const char *str); |
| 81 | extern int dmi_available; | 81 | extern int dmi_available; |
| 82 | extern char *dmi_get_slot(int slot); | ||
| 83 | 82 | ||
| 84 | #else | 83 | #else |
| 85 | 84 | ||
| @@ -90,7 +89,6 @@ static inline const struct dmi_device * dmi_find_device(int type, const char *na | |||
| 90 | static inline int dmi_get_year(int year) { return 0; } | 89 | static inline int dmi_get_year(int year) { return 0; } |
| 91 | static inline int dmi_name_in_vendors(const char *s) { return 0; } | 90 | static inline int dmi_name_in_vendors(const char *s) { return 0; } |
| 92 | #define dmi_available 0 | 91 | #define dmi_available 0 |
| 93 | static inline char *dmi_get_slot(int slot) { return NULL; } | ||
| 94 | 92 | ||
| 95 | #endif | 93 | #endif |
| 96 | 94 | ||
