Merge branch 'next' into for-linus
[muen/linux.git] / drivers / input / mouse / elantech.c
index f1fa1f172107722ef13d8c98e0c2d539d096c2aa..791993215ea34c8f88242ea94719746db240742d 100644 (file)
@@ -1711,6 +1711,17 @@ int elantech_init(struct psmouse *psmouse)
                             etd->samples[0], etd->samples[1], etd->samples[2]);
        }
 
+       if (etd->samples[1] == 0x74 && etd->hw_version == 0x03) {
+               /*
+                * This module has a bug which makes absolute mode
+                * unusable, so let's abort so we'll be using standard
+                * PS/2 protocol.
+                */
+               psmouse_info(psmouse,
+                            "absolute mode broken, forcing standard PS/2 protocol\n");
+               goto init_fail;
+       }
+
        if (elantech_set_absolute_mode(psmouse)) {
                psmouse_err(psmouse,
                            "failed to put touchpad into absolute mode.\n");