aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/i386/kernel/dmi_scan.c45
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
173static __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
191static __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
207static void __init dmi_decode(struct dmi_header *dm) 167static 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
254void __init dmi_scan_machine(void) 214void __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