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 | ||