aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/blacklist.c56
-rw-r--r--drivers/acpi/osl.c16
-rw-r--r--drivers/firmware/dmi_scan.c9
-rw-r--r--include/linux/dmi.h2
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
123struct osi_linux { 123static 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 */
1220int acpi_dmi_dump(void) 1220static 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 */
497char *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);
79extern int dmi_get_year(int field); 79extern int dmi_get_year(int field);
80extern int dmi_name_in_vendors(const char *str); 80extern int dmi_name_in_vendors(const char *str);
81extern int dmi_available; 81extern int dmi_available;
82extern 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
90static inline int dmi_get_year(int year) { return 0; } 89static inline int dmi_get_year(int year) { return 0; }
91static inline int dmi_name_in_vendors(const char *s) { return 0; } 90static inline int dmi_name_in_vendors(const char *s) { return 0; }
92#define dmi_available 0 91#define dmi_available 0
93static inline char *dmi_get_slot(int slot) { return NULL; }
94 92
95#endif 93#endif
96 94