OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [acpi/] [blacklist.c] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 *  blacklist.c
3
 *
4
 *  Check to see if the given machine has a known bad ACPI BIOS
5
 *  or if the BIOS is too old.
6
 *  Check given machine against acpi_osi_dmi_table[].
7
 *
8
 *  Copyright (C) 2004 Len Brown <len.brown@intel.com>
9
 *  Copyright (C) 2002 Andy Grover <andrew.grover@intel.com>
10
 *
11
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12
 *
13
 *  This program is free software; you can redistribute it and/or modify
14
 *  it under the terms of the GNU General Public License as published by
15
 *  the Free Software Foundation; either version 2 of the License, or (at
16
 *  your option) any later version.
17
 *
18
 *  This program is distributed in the hope that it will be useful, but
19
 *  WITHOUT ANY WARRANTY; without even the implied warranty of
20
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21
 *  General Public License for more details.
22
 *
23
 *  You should have received a copy of the GNU General Public License along
24
 *  with this program; if not, write to the Free Software Foundation, Inc.,
25
 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
26
 *
27
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28
 */
29
 
30
#include <linux/kernel.h>
31
#include <linux/module.h>
32
#include <linux/init.h>
33
#include <linux/acpi.h>
34
#include <acpi/acpi_bus.h>
35
#include <linux/dmi.h>
36
 
37
enum acpi_blacklist_predicates {
38
        all_versions,
39
        less_than_or_equal,
40
        equal,
41
        greater_than_or_equal,
42
};
43
 
44
struct acpi_blacklist_item {
45
        char oem_id[7];
46
        char oem_table_id[9];
47
        u32 oem_revision;
48
        char *table;
49
        enum acpi_blacklist_predicates oem_revision_predicate;
50
        char *reason;
51
        u32 is_critical_error;
52
};
53
 
54
static struct dmi_system_id acpi_osi_dmi_table[] __initdata;
55
 
56
/*
57
 * POLICY: If *anything* doesn't work, put it on the blacklist.
58
 *         If they are critical errors, mark it critical, and abort driver load.
59
 */
60
static struct acpi_blacklist_item acpi_blacklist[] __initdata = {
61
        /* Compaq Presario 1700 */
62
        {"PTLTD ", "  DSDT  ", 0x06040000, ACPI_SIG_DSDT, less_than_or_equal,
63
         "Multiple problems", 1},
64
        /* Sony FX120, FX140, FX150? */
65
        {"SONY  ", "U0      ", 0x20010313, ACPI_SIG_DSDT, less_than_or_equal,
66
         "ACPI driver problem", 1},
67
        /* Compaq Presario 800, Insyde BIOS */
68
        {"INT440", "SYSFexxx", 0x00001001, ACPI_SIG_DSDT, less_than_or_equal,
69
         "Does not use _REG to protect EC OpRegions", 1},
70
        /* IBM 600E - _ADR should return 7, but it returns 1 */
71
        {"IBM   ", "TP600E  ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal,
72
         "Incorrect _ADR", 1},
73
        {"ASUS\0\0", "P2B-S   ", 0, ACPI_SIG_DSDT, all_versions,
74
         "Bogus PCI routing", 1},
75
 
76
        {""}
77
};
78
 
79
#if     CONFIG_ACPI_BLACKLIST_YEAR
80
 
81
static int __init blacklist_by_year(void)
82
{
83
        int year = dmi_get_year(DMI_BIOS_DATE);
84
        /* Doesn't exist? Likely an old system */
85
        if (year == -1) {
86
                printk(KERN_ERR PREFIX "no DMI BIOS year, "
87
                        "acpi=force is required to enable ACPI\n" );
88
                return 1;
89
        }
90
        /* 0? Likely a buggy new BIOS */
91
        if (year == 0) {
92
                printk(KERN_ERR PREFIX "DMI BIOS year==0, "
93
                        "assuming ACPI-capable machine\n" );
94
                return 0;
95
        }
96
        if (year < CONFIG_ACPI_BLACKLIST_YEAR) {
97
                printk(KERN_ERR PREFIX "BIOS age (%d) fails cutoff (%d), "
98
                       "acpi=force is required to enable ACPI\n",
99
                       year, CONFIG_ACPI_BLACKLIST_YEAR);
100
                return 1;
101
        }
102
        return 0;
103
}
104
#else
105
static inline int blacklist_by_year(void)
106
{
107
        return 0;
108
}
109
#endif
110
 
111
int __init acpi_blacklisted(void)
112
{
113
        int i = 0;
114
        int blacklisted = 0;
115
        struct acpi_table_header table_header;
116
 
117
        while (acpi_blacklist[i].oem_id[0] != '\0') {
118
                if (acpi_get_table_header(acpi_blacklist[i].table, 0, &table_header)) {
119
                        i++;
120
                        continue;
121
                }
122
 
123
                if (strncmp(acpi_blacklist[i].oem_id, table_header.oem_id, 6)) {
124
                        i++;
125
                        continue;
126
                }
127
 
128
                if (strncmp
129
                    (acpi_blacklist[i].oem_table_id, table_header.oem_table_id,
130
                     8)) {
131
                        i++;
132
                        continue;
133
                }
134
 
135
                if ((acpi_blacklist[i].oem_revision_predicate == all_versions)
136
                    || (acpi_blacklist[i].oem_revision_predicate ==
137
                        less_than_or_equal
138
                        && table_header.oem_revision <=
139
                        acpi_blacklist[i].oem_revision)
140
                    || (acpi_blacklist[i].oem_revision_predicate ==
141
                        greater_than_or_equal
142
                        && table_header.oem_revision >=
143
                        acpi_blacklist[i].oem_revision)
144
                    || (acpi_blacklist[i].oem_revision_predicate == equal
145
                        && table_header.oem_revision ==
146
                        acpi_blacklist[i].oem_revision)) {
147
 
148
                        printk(KERN_ERR PREFIX
149
                               "Vendor \"%6.6s\" System \"%8.8s\" "
150
                               "Revision 0x%x has a known ACPI BIOS problem.\n",
151
                               acpi_blacklist[i].oem_id,
152
                               acpi_blacklist[i].oem_table_id,
153
                               acpi_blacklist[i].oem_revision);
154
 
155
                        printk(KERN_ERR PREFIX
156
                               "Reason: %s. This is a %s error\n",
157
                               acpi_blacklist[i].reason,
158
                               (acpi_blacklist[i].
159
                                is_critical_error ? "non-recoverable" :
160
                                "recoverable"));
161
 
162
                        blacklisted = acpi_blacklist[i].is_critical_error;
163
                        break;
164
                } else {
165
                        i++;
166
                }
167
        }
168
 
169
        blacklisted += blacklist_by_year();
170
 
171
        dmi_check_system(acpi_osi_dmi_table);
172
 
173
        return blacklisted;
174
}
175
#ifdef CONFIG_DMI
176
static int __init dmi_enable_osi_linux(const struct dmi_system_id *d)
177
{
178
        acpi_dmi_osi_linux(1, d);       /* enable */
179
        return 0;
180
}
181
static int __init dmi_disable_osi_linux(const struct dmi_system_id *d)
182
{
183
        acpi_dmi_osi_linux(0, d);        /* disable */
184
        return 0;
185
}
186
static int __init dmi_unknown_osi_linux(const struct dmi_system_id *d)
187
{
188
        acpi_dmi_osi_linux(-1, d);      /* unknown */
189
        return 0;
190
}
191
 
192
/*
193
 * Most BIOS that invoke OSI(Linux) do nothing with it.
194
 * But some cause Linux to break.
195
 * Only a couple use it to make Linux run better.
196
 *
197
 * Thus, Linux should continue to disable OSI(Linux) by default,
198
 * should continue to discourage BIOS writers from using it, and
199
 * should whitelist the few existing systems that require it.
200
 *
201
 * If it appears clear a vendor isn't using OSI(Linux)
202
 * for anything constructive, blacklist them by name to disable
203
 * unnecessary dmesg warnings on all of their products.
204
 */
205
 
206
static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
207
        /*
208
         * Disable OSI(Linux) warnings on all "Acer, inc."
209
         *
210
         * _OSI(Linux) disables the latest Windows BIOS code:
211
         * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5050"),
212
         * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5580"),
213
         * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 3010"),
214
         * _OSI(Linux) effect unknown:
215
         * DMI_MATCH(DMI_PRODUCT_NAME, "Ferrari 5000"),
216
         */
217
        {
218
        .callback = dmi_disable_osi_linux,
219
        .ident = "Acer, inc.",
220
        .matches = {
221
                     DMI_MATCH(DMI_SYS_VENDOR, "Acer, inc."),
222
                },
223
        },
224
        /*
225
         * Disable OSI(Linux) warnings on all "Acer"
226
         *
227
         * _OSI(Linux) effect unknown:
228
         * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5100"),
229
         * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"),
230
         * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720Z"),
231
         * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5520"),
232
         * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 6460"),
233
         * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 7510"),
234
         * DMI_MATCH(DMI_PRODUCT_NAME, "Extensa 5220"),
235
         */
236
        {
237
        .callback = dmi_unknown_osi_linux,
238
        .ident = "Acer",
239
        .matches = {
240
                     DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
241
                },
242
        },
243
        /*
244
         * Disable OSI(Linux) warnings on all "Apple Computer, Inc."
245
         *
246
         * _OSI(Linux) confirmed to be a NOP:
247
         * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"),
248
         * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook2,1"),
249
         * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro2,2"),
250
         * _OSI(Linux) effect unknown:
251
         * DMI_MATCH(DMI_PRODUCT_NAME, "MacPro2,1"),
252
         * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro1,1"),
253
         * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro3,1"),
254
         */
255
        {
256
        .callback = dmi_disable_osi_linux,
257
        .ident = "Apple",
258
        .matches = {
259
                     DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."),
260
                },
261
        },
262
        /*
263
         * Disable OSI(Linux) warnings on all "BenQ"
264
         *
265
         * _OSI(Linux) confirmed to be a NOP:
266
         * DMI_MATCH(DMI_PRODUCT_NAME, "Joybook S31"),
267
         */
268
        {
269
        .callback = dmi_disable_osi_linux,
270
        .ident = "BenQ",
271
        .matches = {
272
                     DMI_MATCH(DMI_SYS_VENDOR, "BenQ"),
273
                },
274
        },
275
        /*
276
         * Disable OSI(Linux) warnings on all "Clevo Co."
277
         *
278
         * _OSI(Linux) confirmed to be a NOP:
279
         * DMI_MATCH(DMI_PRODUCT_NAME, "M570RU"),
280
         */
281
        {
282
        .callback = dmi_disable_osi_linux,
283
        .ident = "Clevo",
284
        .matches = {
285
                     DMI_MATCH(DMI_SYS_VENDOR, "Clevo Co."),
286
                },
287
        },
288
        /*
289
         * Disable OSI(Linux) warnings on all "COMPAL"
290
         *
291
         * _OSI(Linux) confirmed to be a NOP:
292
         * DMI_MATCH(DMI_BOARD_NAME, "HEL8X"),
293
         * _OSI(Linux) unknown effect:
294
         * DMI_MATCH(DMI_BOARD_NAME, "IFL91"),
295
         */
296
        {
297
        .callback = dmi_unknown_osi_linux,
298
        .ident = "Compal",
299
        .matches = {
300
                     DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
301
                },
302
        },
303
        { /* OSI(Linux) touches USB, breaks suspend to disk */
304
        .callback = dmi_disable_osi_linux,
305
        .ident = "Dell Dimension 5150",
306
        .matches = {
307
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
308
                     DMI_MATCH(DMI_PRODUCT_NAME, "Dell DM051"),
309
                },
310
        },
311
        { /* OSI(Linux) is a NOP */
312
        .callback = dmi_disable_osi_linux,
313
        .ident = "Dell",
314
        .matches = {
315
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
316
                     DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1501"),
317
                },
318
        },
319
        { /* OSI(Linux) effect unknown */
320
        .callback = dmi_unknown_osi_linux,
321
        .ident = "Dell",
322
        .matches = {
323
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
324
                     DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D830"),
325
                },
326
        },
327
        { /* OSI(Linux) effect unknown */
328
        .callback = dmi_unknown_osi_linux,
329
        .ident = "Dell",
330
        .matches = {
331
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
332
                     DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex GX620"),
333
                },
334
        },
335
        { /* OSI(Linux) effect unknown */
336
        .callback = dmi_unknown_osi_linux,
337
        .ident = "Dell",
338
        .matches = {
339
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
340
                     DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1900"),
341
                },
342
        },
343
        { /* OSI(Linux) touches USB */
344
        .callback = dmi_disable_osi_linux,
345
        .ident = "Dell",
346
        .matches = {
347
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
348
                     DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation 390"),
349
                },
350
        },
351
        { /* OSI(Linux) is a NOP */
352
        .callback = dmi_disable_osi_linux,
353
        .ident = "Dell Vostro 1000",
354
        .matches = {
355
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
356
                     DMI_MATCH(DMI_PRODUCT_NAME, "Vostro   1000"),
357
                },
358
        },
359
        { /* OSI(Linux) effect unknown */
360
        .callback = dmi_unknown_osi_linux,
361
        .ident = "Dell",
362
        .matches = {
363
                     DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
364
                     DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge SC440"),
365
                },
366
        },
367
        { /* OSI(Linux) effect unknown */
368
        .callback = dmi_unknown_osi_linux,
369
        .ident = "Dialogue Flybook V5",
370
        .matches = {
371
                     DMI_MATCH(DMI_SYS_VENDOR, "Dialogue Technology Corporation"),
372
                     DMI_MATCH(DMI_PRODUCT_NAME, "Flybook V5"),
373
                },
374
        },
375
        /*
376
         * Disable OSI(Linux) warnings on all "FUJITSU SIEMENS"
377
         *
378
         * _OSI(Linux) disables latest Windows BIOS code:
379
         * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pa 2510"),
380
         * _OSI(Linux) confirmed to be a NOP:
381
         * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 1536"),
382
         * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 1556"),
383
         * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 1546"),
384
         * _OSI(Linux) unknown effect:
385
         * DMI_MATCH(DMI_PRODUCT_NAME, "Amilo M1425"),
386
         * DMI_MATCH(DMI_PRODUCT_NAME, "Amilo Si 1520"),
387
         * DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"),
388
         */
389
        {
390
        .callback = dmi_disable_osi_linux,
391
        .ident = "Fujitsu Siemens",
392
        .matches = {
393
                     DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
394
                },
395
        },
396
        /*
397
         * Disable OSI(Linux) warnings on all "Hewlett-Packard"
398
         *
399
         * _OSI(Linux) confirmed to be a NOP:
400
         * .ident = "HP Pavilion tx 1000"
401
         * DMI_MATCH(DMI_BOARD_NAME, "30BF"),
402
         * .ident = "HP Pavilion dv2000"
403
         * DMI_MATCH(DMI_BOARD_NAME, "30B5"),
404
         * .ident = "HP Pavilion dv5000",
405
         * DMI_MATCH(DMI_BOARD_NAME, "30A7"),
406
         * .ident = "HP Pavilion dv6300 30BC",
407
         * DMI_MATCH(DMI_BOARD_NAME, "30BC"),
408
         * .ident = "HP Pavilion dv6000",
409
         * DMI_MATCH(DMI_BOARD_NAME, "30B7"),
410
         * DMI_MATCH(DMI_BOARD_NAME, "30B8"),
411
         * .ident = "HP Pavilion dv9000",
412
         * DMI_MATCH(DMI_BOARD_NAME, "30B9"),
413
         * .ident = "HP Pavilion dv9500",
414
         * DMI_MATCH(DMI_BOARD_NAME, "30CB"),
415
         * .ident = "HP/Compaq Presario C500",
416
         * DMI_MATCH(DMI_BOARD_NAME, "30C6"),
417
         * .ident = "HP/Compaq Presario F500",
418
         * DMI_MATCH(DMI_BOARD_NAME, "30D3"),
419
         * _OSI(Linux) unknown effect:
420
         * .ident = "HP Pavilion dv6500",
421
         * DMI_MATCH(DMI_BOARD_NAME, "30D0"),
422
         */
423
        {
424
        .callback = dmi_disable_osi_linux,
425
        .ident = "Hewlett-Packard",
426
        .matches = {
427
                     DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
428
                },
429
        },
430
        /*
431
         * Lenovo has a mix of systems OSI(Linux) situations
432
         * and thus we can not wildcard the vendor.
433
         *
434
         * _OSI(Linux) helps sound
435
         * DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad R61"),
436
         * DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T61"),
437
         * _OSI(Linux) is a NOP:
438
         * DMI_MATCH(DMI_PRODUCT_VERSION, "3000 N100"),
439
         */
440
        {
441
        .callback = dmi_enable_osi_linux,
442
        .ident = "Lenovo ThinkPad R61",
443
        .matches = {
444
                     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
445
                     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad R61"),
446
                },
447
        },
448
        {
449
        .callback = dmi_enable_osi_linux,
450
        .ident = "Lenovo ThinkPad T61",
451
        .matches = {
452
                     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
453
                     DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T61"),
454
                },
455
        },
456
        {
457
        .callback = dmi_unknown_osi_linux,
458
        .ident = "Lenovo 3000 V100",
459
        .matches = {
460
                     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
461
                     DMI_MATCH(DMI_PRODUCT_VERSION, "LENOVO3000 V100"),
462
                },
463
        },
464
        {
465
        .callback = dmi_disable_osi_linux,
466
        .ident = "Lenovo 3000 N100",
467
        .matches = {
468
                     DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
469
                     DMI_MATCH(DMI_PRODUCT_VERSION, "3000 N100"),
470
                },
471
        },
472
        /*
473
         * Disable OSI(Linux) warnings on all "LG Electronics"
474
         *
475
         * _OSI(Linux) confirmed to be a NOP:
476
         * DMI_MATCH(DMI_PRODUCT_NAME, "P1-J150B"),
477
         */
478
        {
479
        .callback = dmi_disable_osi_linux,
480
        .ident = "LG",
481
        .matches = {
482
                     DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"),
483
                },
484
        },
485
        /* NEC - OSI(Linux) effect unknown */
486
        {
487
        .callback = dmi_unknown_osi_linux,
488
        .ident = "NEC VERSA M360",
489
        .matches = {
490
                     DMI_MATCH(DMI_SYS_VENDOR, "NEC Computers SAS"),
491
                     DMI_MATCH(DMI_PRODUCT_NAME, "NEC VERSA M360"),
492
                },
493
        },
494
        /*
495
         * Disable OSI(Linux) warnings on all "Samsung Electronics"
496
         *
497
         * OSI(Linux) disables PNP0C32 and other BIOS code for Windows:
498
         * DMI_MATCH(DMI_PRODUCT_NAME, "R40P/R41P"),
499
         * DMI_MATCH(DMI_PRODUCT_NAME, "R59P/R60P/R61P"),
500
         */
501
        {
502
        .callback = dmi_disable_osi_linux,
503
        .ident = "Samsung",
504
        .matches = {
505
                     DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
506
                },
507
        },
508
        /*
509
         * Disable OSI(Linux) warnings on all "Sony Corporation"
510
         *
511
         * _OSI(Linux) is a NOP:
512
         * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SZ650N"),
513
         * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SZ38GP_C"),
514
         * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-TZ21MN_N"),
515
         * _OSI(Linux) unknown effect:
516
         * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ11M"),
517
         */
518
        {
519
        .callback = dmi_unknown_osi_linux,
520
        .ident = "Sony",
521
        .matches = {
522
                     DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
523
                },
524
        },
525
        /*
526
         * Disable OSI(Linux) warnings on all "TOSHIBA"
527
         *
528
         * _OSI(Linux) breaks sound (bugzilla 7787):
529
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P100"),
530
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P105"),
531
         * _OSI(Linux) is a NOP:
532
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A100"),
533
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A210"),
534
         * _OSI(Linux) unknown effect:
535
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A135"),
536
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A200"),
537
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P205"),
538
         * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite U305"),
539
         */
540
        {
541
        .callback = dmi_disable_osi_linux,
542
        .ident = "Toshiba",
543
        .matches = {
544
                     DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
545
                },
546
        },
547
        {}
548
};
549
 
550
#endif /* CONFIG_DMI */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.