@@ -207,17 +207,282 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = {
207
207
};
208
208
209
209
/*
210
- * Some laptops do implement active multiplexing mode correctly;
211
- * unfortunately they are in minority.
210
+ * Some Fujitsu notebooks are having trouble with touchpads if
211
+ * active multiplexing mode is activated. Luckily they don't have
212
+ * external PS/2 ports so we can safely disable it.
213
+ * ... apparently some Toshibas don't like MUX mode either and
214
+ * die horrible death on reboot.
212
215
*/
213
- static const struct dmi_system_id __initconst i8042_dmi_mux_table [] = {
216
+ static const struct dmi_system_id __initconst i8042_dmi_nomux_table [] = {
217
+ {
218
+ /* Fujitsu Lifebook P7010/P7010D */
219
+ .matches = {
220
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU" ),
221
+ DMI_MATCH (DMI_PRODUCT_NAME , "P7010" ),
222
+ },
223
+ },
224
+ {
225
+ /* Fujitsu Lifebook P7010 */
226
+ .matches = {
227
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU SIEMENS" ),
228
+ DMI_MATCH (DMI_PRODUCT_NAME , "0000000000" ),
229
+ },
230
+ },
231
+ {
232
+ /* Fujitsu Lifebook P5020D */
233
+ .matches = {
234
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU" ),
235
+ DMI_MATCH (DMI_PRODUCT_NAME , "LifeBook P Series" ),
236
+ },
237
+ },
238
+ {
239
+ /* Fujitsu Lifebook S2000 */
240
+ .matches = {
241
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU" ),
242
+ DMI_MATCH (DMI_PRODUCT_NAME , "LifeBook S Series" ),
243
+ },
244
+ },
245
+ {
246
+ /* Fujitsu Lifebook S6230 */
247
+ .matches = {
248
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU" ),
249
+ DMI_MATCH (DMI_PRODUCT_NAME , "LifeBook S6230" ),
250
+ },
251
+ },
252
+ {
253
+ /* Fujitsu T70H */
254
+ .matches = {
255
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU" ),
256
+ DMI_MATCH (DMI_PRODUCT_NAME , "FMVLT70H" ),
257
+ },
258
+ },
259
+ {
260
+ /* Fujitsu-Siemens Lifebook T3010 */
261
+ .matches = {
262
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU SIEMENS" ),
263
+ DMI_MATCH (DMI_PRODUCT_NAME , "LIFEBOOK T3010" ),
264
+ },
265
+ },
266
+ {
267
+ /* Fujitsu-Siemens Lifebook E4010 */
268
+ .matches = {
269
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU SIEMENS" ),
270
+ DMI_MATCH (DMI_PRODUCT_NAME , "LIFEBOOK E4010" ),
271
+ },
272
+ },
273
+ {
274
+ /* Fujitsu-Siemens Amilo Pro 2010 */
275
+ .matches = {
276
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU SIEMENS" ),
277
+ DMI_MATCH (DMI_PRODUCT_NAME , "AMILO Pro V2010" ),
278
+ },
279
+ },
280
+ {
281
+ /* Fujitsu-Siemens Amilo Pro 2030 */
282
+ .matches = {
283
+ DMI_MATCH (DMI_SYS_VENDOR , "FUJITSU SIEMENS" ),
284
+ DMI_MATCH (DMI_PRODUCT_NAME , "AMILO PRO V2030" ),
285
+ },
286
+ },
287
+ {
288
+ /*
289
+ * No data is coming from the touchscreen unless KBC
290
+ * is in legacy mode.
291
+ */
292
+ /* Panasonic CF-29 */
293
+ .matches = {
294
+ DMI_MATCH (DMI_SYS_VENDOR , "Matsushita" ),
295
+ DMI_MATCH (DMI_PRODUCT_NAME , "CF-29" ),
296
+ },
297
+ },
298
+ {
299
+ /*
300
+ * HP Pavilion DV4017EA -
301
+ * errors on MUX ports are reported without raising AUXDATA
302
+ * causing "spurious NAK" messages.
303
+ */
304
+ .matches = {
305
+ DMI_MATCH (DMI_SYS_VENDOR , "Hewlett-Packard" ),
306
+ DMI_MATCH (DMI_PRODUCT_NAME , "Pavilion dv4000 (EA032EA#ABF)" ),
307
+ },
308
+ },
309
+ {
310
+ /*
311
+ * HP Pavilion ZT1000 -
312
+ * like DV4017EA does not raise AUXERR for errors on MUX ports.
313
+ */
314
+ .matches = {
315
+ DMI_MATCH (DMI_SYS_VENDOR , "Hewlett-Packard" ),
316
+ DMI_MATCH (DMI_PRODUCT_NAME , "HP Pavilion Notebook PC" ),
317
+ DMI_MATCH (DMI_PRODUCT_VERSION , "HP Pavilion Notebook ZT1000" ),
318
+ },
319
+ },
214
320
{
215
321
/*
216
- * Panasonic CF-18 needs to be in MUX mode since the
217
- * touchscreen is on serio3 and it also has touchpad .
322
+ * HP Pavilion DV4270ca -
323
+ * like DV4017EA does not raise AUXERR for errors on MUX ports .
218
324
*/
219
325
.matches = {
220
- DMI_MATCH (DMI_PRODUCT_NAME , "CF-18" ),
326
+ DMI_MATCH (DMI_SYS_VENDOR , "Hewlett-Packard" ),
327
+ DMI_MATCH (DMI_PRODUCT_NAME , "Pavilion dv4000 (EH476UA#ABL)" ),
328
+ },
329
+ },
330
+ {
331
+ .matches = {
332
+ DMI_MATCH (DMI_SYS_VENDOR , "TOSHIBA" ),
333
+ DMI_MATCH (DMI_PRODUCT_NAME , "Satellite P10" ),
334
+ },
335
+ },
336
+ {
337
+ .matches = {
338
+ DMI_MATCH (DMI_SYS_VENDOR , "TOSHIBA" ),
339
+ DMI_MATCH (DMI_PRODUCT_NAME , "EQUIUM A110" ),
340
+ },
341
+ },
342
+ {
343
+ .matches = {
344
+ DMI_MATCH (DMI_SYS_VENDOR , "TOSHIBA" ),
345
+ DMI_MATCH (DMI_PRODUCT_NAME , "SATELLITE C850D" ),
346
+ },
347
+ },
348
+ {
349
+ .matches = {
350
+ DMI_MATCH (DMI_SYS_VENDOR , "ALIENWARE" ),
351
+ DMI_MATCH (DMI_PRODUCT_NAME , "Sentia" ),
352
+ },
353
+ },
354
+ {
355
+ /* Sharp Actius MM20 */
356
+ .matches = {
357
+ DMI_MATCH (DMI_SYS_VENDOR , "SHARP" ),
358
+ DMI_MATCH (DMI_PRODUCT_NAME , "PC-MM20 Series" ),
359
+ },
360
+ },
361
+ {
362
+ /* Sony Vaio FS-115b */
363
+ .matches = {
364
+ DMI_MATCH (DMI_SYS_VENDOR , "Sony Corporation" ),
365
+ DMI_MATCH (DMI_PRODUCT_NAME , "VGN-FS115B" ),
366
+ },
367
+ },
368
+ {
369
+ /*
370
+ * Sony Vaio FZ-240E -
371
+ * reset and GET ID commands issued via KBD port are
372
+ * sometimes being delivered to AUX3.
373
+ */
374
+ .matches = {
375
+ DMI_MATCH (DMI_SYS_VENDOR , "Sony Corporation" ),
376
+ DMI_MATCH (DMI_PRODUCT_NAME , "VGN-FZ240E" ),
377
+ },
378
+ },
379
+ {
380
+ /*
381
+ * Most (all?) VAIOs do not have external PS/2 ports nor
382
+ * they implement active multiplexing properly, and
383
+ * MUX discovery usually messes up keyboard/touchpad.
384
+ */
385
+ .matches = {
386
+ DMI_MATCH (DMI_SYS_VENDOR , "Sony Corporation" ),
387
+ DMI_MATCH (DMI_BOARD_NAME , "VAIO" ),
388
+ },
389
+ },
390
+ {
391
+ /* Amoi M636/A737 */
392
+ .matches = {
393
+ DMI_MATCH (DMI_SYS_VENDOR , "Amoi Electronics CO.,LTD." ),
394
+ DMI_MATCH (DMI_PRODUCT_NAME , "M636/A737 platform" ),
395
+ },
396
+ },
397
+ {
398
+ /* Lenovo 3000 n100 */
399
+ .matches = {
400
+ DMI_MATCH (DMI_SYS_VENDOR , "LENOVO" ),
401
+ DMI_MATCH (DMI_PRODUCT_NAME , "076804U" ),
402
+ },
403
+ },
404
+ {
405
+ .matches = {
406
+ DMI_MATCH (DMI_SYS_VENDOR , "Acer" ),
407
+ DMI_MATCH (DMI_PRODUCT_NAME , "Aspire 1360" ),
408
+ },
409
+ },
410
+ {
411
+ /* Acer Aspire 5710 */
412
+ .matches = {
413
+ DMI_MATCH (DMI_SYS_VENDOR , "Acer" ),
414
+ DMI_MATCH (DMI_PRODUCT_NAME , "Aspire 5710" ),
415
+ },
416
+ },
417
+ {
418
+ /* Gericom Bellagio */
419
+ .matches = {
420
+ DMI_MATCH (DMI_SYS_VENDOR , "Gericom" ),
421
+ DMI_MATCH (DMI_PRODUCT_NAME , "N34AS6" ),
422
+ },
423
+ },
424
+ {
425
+ /* IBM 2656 */
426
+ .matches = {
427
+ DMI_MATCH (DMI_SYS_VENDOR , "IBM" ),
428
+ DMI_MATCH (DMI_PRODUCT_NAME , "2656" ),
429
+ },
430
+ },
431
+ {
432
+ /* Dell XPS M1530 */
433
+ .matches = {
434
+ DMI_MATCH (DMI_SYS_VENDOR , "Dell Inc." ),
435
+ DMI_MATCH (DMI_PRODUCT_NAME , "XPS M1530" ),
436
+ },
437
+ },
438
+ {
439
+ /* Compal HEL80I */
440
+ .matches = {
441
+ DMI_MATCH (DMI_SYS_VENDOR , "COMPAL" ),
442
+ DMI_MATCH (DMI_PRODUCT_NAME , "HEL80I" ),
443
+ },
444
+ },
445
+ {
446
+ /* Dell Vostro 1510 */
447
+ .matches = {
448
+ DMI_MATCH (DMI_SYS_VENDOR , "Dell Inc." ),
449
+ DMI_MATCH (DMI_PRODUCT_NAME , "Vostro1510" ),
450
+ },
451
+ },
452
+ {
453
+ /* Acer Aspire 5536 */
454
+ .matches = {
455
+ DMI_MATCH (DMI_SYS_VENDOR , "Acer" ),
456
+ DMI_MATCH (DMI_PRODUCT_NAME , "Aspire 5536" ),
457
+ DMI_MATCH (DMI_PRODUCT_VERSION , "0100" ),
458
+ },
459
+ },
460
+ {
461
+ /* Dell Vostro V13 */
462
+ .matches = {
463
+ DMI_MATCH (DMI_SYS_VENDOR , "Dell Inc." ),
464
+ DMI_MATCH (DMI_PRODUCT_NAME , "Vostro V13" ),
465
+ },
466
+ },
467
+ {
468
+ /* Newer HP Pavilion dv4 models */
469
+ .matches = {
470
+ DMI_MATCH (DMI_SYS_VENDOR , "Hewlett-Packard" ),
471
+ DMI_MATCH (DMI_PRODUCT_NAME , "HP Pavilion dv4 Notebook PC" ),
472
+ },
473
+ },
474
+ {
475
+ /* Asus X450LCP */
476
+ .matches = {
477
+ DMI_MATCH (DMI_SYS_VENDOR , "ASUSTeK COMPUTER INC." ),
478
+ DMI_MATCH (DMI_PRODUCT_NAME , "X450LCP" ),
479
+ },
480
+ },
481
+ {
482
+ /* Avatar AVIU-145A6 */
483
+ .matches = {
484
+ DMI_MATCH (DMI_SYS_VENDOR , "Intel" ),
485
+ DMI_MATCH (DMI_PRODUCT_NAME , "IC4I" ),
221
486
},
222
487
},
223
488
{ }
@@ -756,8 +1021,8 @@ static int __init i8042_platform_init(void)
756
1021
if (dmi_check_system (i8042_dmi_noloop_table ))
757
1022
i8042_noloop = true;
758
1023
759
- if (dmi_check_system (i8042_dmi_mux_table ))
760
- i8042_nomux = false ;
1024
+ if (dmi_check_system (i8042_dmi_nomux_table ))
1025
+ i8042_nomux = true ;
761
1026
762
1027
if (dmi_check_system (i8042_dmi_notimeout_table ))
763
1028
i8042_notimeout = true;
0 commit comments