|
@@ -207,17 +207,282 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = {
|
|
|
};
|
|
|
|
|
|
/*
|
|
|
- * Some laptops do implement active multiplexing mode correctly;
|
|
|
- * unfortunately they are in minority.
|
|
|
+ * Some Fujitsu notebooks are having trouble with touchpads if
|
|
|
+ * active multiplexing mode is activated. Luckily they don't have
|
|
|
+ * external PS/2 ports so we can safely disable it.
|
|
|
+ * ... apparently some Toshibas don't like MUX mode either and
|
|
|
+ * die horrible death on reboot.
|
|
|
*/
|
|
|
-static const struct dmi_system_id __initconst i8042_dmi_mux_table[] = {
|
|
|
+static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
|
|
|
+ {
|
|
|
+ /* Fujitsu Lifebook P7010/P7010D */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "P7010"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu Lifebook P7010 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "0000000000"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu Lifebook P5020D */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook P Series"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu Lifebook S2000 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook S Series"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu Lifebook S6230 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook S6230"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu T70H */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "FMVLT70H"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu-Siemens Lifebook T3010 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK T3010"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu-Siemens Lifebook E4010 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK E4010"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu-Siemens Amilo Pro 2010 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pro V2010"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Fujitsu-Siemens Amilo Pro 2030 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "AMILO PRO V2030"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /*
|
|
|
+ * No data is coming from the touchscreen unless KBC
|
|
|
+ * is in legacy mode.
|
|
|
+ */
|
|
|
+ /* Panasonic CF-29 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Matsushita"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "CF-29"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /*
|
|
|
+ * HP Pavilion DV4017EA -
|
|
|
+ * errors on MUX ports are reported without raising AUXDATA
|
|
|
+ * causing "spurious NAK" messages.
|
|
|
+ */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EA032EA#ABF)"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /*
|
|
|
+ * HP Pavilion ZT1000 -
|
|
|
+ * like DV4017EA does not raise AUXERR for errors on MUX ports.
|
|
|
+ */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook ZT1000"),
|
|
|
+ },
|
|
|
+ },
|
|
|
{
|
|
|
/*
|
|
|
- * Panasonic CF-18 needs to be in MUX mode since the
|
|
|
- * touchscreen is on serio3 and it also has touchpad.
|
|
|
+ * HP Pavilion DV4270ca -
|
|
|
+ * like DV4017EA does not raise AUXERR for errors on MUX ports.
|
|
|
*/
|
|
|
.matches = {
|
|
|
- DMI_MATCH(DMI_PRODUCT_NAME, "CF-18"),
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EH476UA#ABL)"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P10"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "EQUIUM A110"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE C850D"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "ALIENWARE"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Sentia"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Sharp Actius MM20 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "SHARP"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "PC-MM20 Series"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Sony Vaio FS-115b */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FS115B"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /*
|
|
|
+ * Sony Vaio FZ-240E -
|
|
|
+ * reset and GET ID commands issued via KBD port are
|
|
|
+ * sometimes being delivered to AUX3.
|
|
|
+ */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ240E"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /*
|
|
|
+ * Most (all?) VAIOs do not have external PS/2 ports nor
|
|
|
+ * they implement active multiplexing properly, and
|
|
|
+ * MUX discovery usually messes up keyboard/touchpad.
|
|
|
+ */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
|
|
|
+ DMI_MATCH(DMI_BOARD_NAME, "VAIO"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Amoi M636/A737 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Amoi Electronics CO.,LTD."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "M636/A737 platform"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Lenovo 3000 n100 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "076804U"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1360"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Acer Aspire 5710 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Gericom Bellagio */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Gericom"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "N34AS6"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* IBM 2656 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "IBM"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "2656"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Dell XPS M1530 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Compal HEL80I */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "HEL80I"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Dell Vostro 1510 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Vostro1510"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Acer Aspire 5536 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5536"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Dell Vostro V13 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Newer HP Pavilion dv4 models */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv4 Notebook PC"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Asus X450LCP */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "X450LCP"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ /* Avatar AVIU-145A6 */
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Intel"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "IC4I"),
|
|
|
},
|
|
|
},
|
|
|
{ }
|
|
@@ -756,8 +1021,8 @@ static int __init i8042_platform_init(void)
|
|
|
if (dmi_check_system(i8042_dmi_noloop_table))
|
|
|
i8042_noloop = true;
|
|
|
|
|
|
- if (dmi_check_system(i8042_dmi_mux_table))
|
|
|
- i8042_nomux = false;
|
|
|
+ if (dmi_check_system(i8042_dmi_nomux_table))
|
|
|
+ i8042_nomux = true;
|
|
|
|
|
|
if (dmi_check_system(i8042_dmi_notimeout_table))
|
|
|
i8042_notimeout = true;
|