|
@@ -1687,6 +1687,17 @@ int elantech_init(struct psmouse *psmouse)
|
|
etd->samples[0], etd->samples[1], etd->samples[2]);
|
|
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)) {
|
|
if (elantech_set_absolute_mode(psmouse)) {
|
|
psmouse_err(psmouse,
|
|
psmouse_err(psmouse,
|
|
"failed to put touchpad into absolute mode.\n");
|
|
"failed to put touchpad into absolute mode.\n");
|