diff options
-rw-r--r-- | arch/i386/kernel/dmi_scan.c | 45 |
1 files changed, 1 insertions, 44 deletions
diff --git a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c index 065c30a73c13..ad4b369a5837 100644 --- a/arch/i386/kernel/dmi_scan.c +++ b/arch/i386/kernel/dmi_scan.c | |||
@@ -160,50 +160,10 @@ static void __init dmi_save_ident(struct dmi_header *dm, int slot, int string) | |||
160 | } | 160 | } |
161 | 161 | ||
162 | /* | 162 | /* |
163 | * Ugly compatibility crap. | ||
164 | */ | ||
165 | #define dmi_blacklist dmi_system_id | ||
166 | #define NO_MATCH { DMI_NONE, NULL} | ||
167 | #define MATCH DMI_MATCH | ||
168 | |||
169 | /* | ||
170 | * Toshiba keyboard likes to repeat keys when they are not repeated. | ||
171 | */ | ||
172 | |||
173 | static __init int broken_toshiba_keyboard(struct dmi_blacklist *d) | ||
174 | { | ||
175 | printk(KERN_WARNING "Toshiba with broken keyboard detected. If your keyboard sometimes generates 3 keypresses instead of one, see http://davyd.ucc.asn.au/projects/toshiba/README\n"); | ||
176 | return 0; | ||
177 | } | ||
178 | |||
179 | |||
180 | |||
181 | /* | ||
182 | * Process the DMI blacklists | ||
183 | */ | ||
184 | |||
185 | |||
186 | /* | ||
187 | * This will be expanded over time to force things like the APM | ||
188 | * interrupt mask settings according to the laptop | ||
189 | */ | ||
190 | |||
191 | static __initdata struct dmi_blacklist dmi_blacklist[]={ | ||
192 | |||
193 | { broken_toshiba_keyboard, "Toshiba Satellite 4030cdt", { /* Keyboard generates spurious repeats */ | ||
194 | MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"), | ||
195 | NO_MATCH, NO_MATCH, NO_MATCH | ||
196 | } }, | ||
197 | |||
198 | { NULL, } | ||
199 | }; | ||
200 | |||
201 | /* | ||
202 | * Process a DMI table entry. Right now all we care about are the BIOS | 163 | * Process a DMI table entry. Right now all we care about are the BIOS |
203 | * and machine entries. For 2.5 we should pull the smbus controller info | 164 | * and machine entries. For 2.5 we should pull the smbus controller info |
204 | * out of here. | 165 | * out of here. |
205 | */ | 166 | */ |
206 | |||
207 | static void __init dmi_decode(struct dmi_header *dm) | 167 | static void __init dmi_decode(struct dmi_header *dm) |
208 | { | 168 | { |
209 | #ifdef DMI_DEBUG | 169 | #ifdef DMI_DEBUG |
@@ -253,10 +213,7 @@ static void __init dmi_decode(struct dmi_header *dm) | |||
253 | 213 | ||
254 | void __init dmi_scan_machine(void) | 214 | void __init dmi_scan_machine(void) |
255 | { | 215 | { |
256 | int err = dmi_iterate(dmi_decode); | 216 | if (dmi_iterate(dmi_decode)) |
257 | if(err == 0) | ||
258 | dmi_check_system(dmi_blacklist); | ||
259 | else | ||
260 | printk(KERN_INFO "DMI not present.\n"); | 217 | printk(KERN_INFO "DMI not present.\n"); |
261 | } | 218 | } |
262 | 219 | ||