Merge tag 'v4.10-rc5' into next
[muen/linux.git] / drivers / input / serio / i8042-x86ia64io.h
index a4592ebf9a1d5ea5a11e8ed24d85bd36c0d76e50..05afd16ea9c9efc0bb52efe49510444478e1e220 100644 (file)
@@ -211,6 +211,12 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = {
                        DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"),
                },
        },
+       {
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "PEGATRON CORPORATION"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "C15B"),
+               },
+       },
        { }
 };
 
@@ -805,6 +811,13 @@ static const struct dmi_system_id __initconst i8042_dmi_kbdreset_table[] = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "P34"),
                },
        },
+       {
+               /* Schenker XMG C504 - Elantech touchpad */
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "XMG"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "C504"),
+               },
+       },
        { }
 };
 
@@ -984,7 +997,11 @@ static int __init i8042_pnp_init(void)
 #if defined(__ia64__)
                return -ENODEV;
 #else
-               pr_info("PNP: No PS/2 controller found. Probing ports directly.\n");
+               pr_info("PNP: No PS/2 controller found.\n");
+               if (x86_platform.legacy.i8042 !=
+                               X86_LEGACY_I8042_EXPECTED_PRESENT)
+                       return -ENODEV;
+               pr_info("Probing ports directly.\n");
                return 0;
 #endif
        }
@@ -1071,8 +1088,8 @@ static int __init i8042_platform_init(void)
 
 #ifdef CONFIG_X86
        u8 a20_on = 0xdf;
-       /* Just return if pre-detection shows no i8042 controller exist */
-       if (!x86_platform.i8042_detect())
+       /* Just return if platform does not have i8042 controller */
+       if (x86_platform.legacy.i8042 == X86_LEGACY_I8042_PLATFORM_ABSENT)
                return -ENODEV;
 #endif