From: KT Liao Date: Mon, 12 Dec 2016 19:03:42 +0000 (-0800) Subject: Input: elantech - force relative mode on a certain module X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d899520b0431e70279bfb5066ecb6dc91d0b7072;p=linux.git Input: elantech - force relative mode on a certain module One of Elan modules with sample version is 0x74 and hw_version is 0x03 has a bug in absolute mode implementation, so let it run in default PS/2 relative mode. Signed-off-by: KT Liao Signed-off-by: Dmitry Torokhov --- diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c index efc8ec3423514..3dbab0727376c 100644 --- a/drivers/input/mouse/elantech.c +++ b/drivers/input/mouse/elantech.c @@ -1687,6 +1687,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");