From 99ee5c132e1527d9c6869c955754e194db77d1bd Mon Sep 17 00:00:00 2001 From: JJ Ding Date: Tue, 8 Nov 2011 22:13:14 -0800 Subject: [PATCH] --- yaml --- r: 275871 b: refs/heads/master c: 3940d6185a982a970ff562e085caccbdd62f40bb h: refs/heads/master i: 275869: 42629805a48df4970abf2eb3c82e9c0694f8e85d 275867: 402b2e86198a7600115da4ce6e9e8f46cb9cb9a9 275863: 41b9ea2d2a41d41e62e3f1a4d4605150994512ec 275855: fa53380d211c64ec1c40c283f1fcb9e3fe626e92 275839: ef578c2a1584f30760f5317fe0929cc857447c12 v: v3 --- [refs] | 2 +- trunk/drivers/input/mouse/elantech.c | 26 ++++++++++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index a0ed089d7b99..60684bfdbd06 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b42c909743595208f7987e331f0921b73af2ce25 +refs/heads/master: 3940d6185a982a970ff562e085caccbdd62f40bb diff --git a/trunk/drivers/input/mouse/elantech.c b/trunk/drivers/input/mouse/elantech.c index 09b93b11a274..e2a9867c19d5 100644 --- a/trunk/drivers/input/mouse/elantech.c +++ b/trunk/drivers/input/mouse/elantech.c @@ -1210,18 +1210,28 @@ static int elantech_reconnect(struct psmouse *psmouse) */ static int elantech_set_properties(struct elantech_data *etd) { + /* This represents the version of IC body. */ int ver = (etd->fw_version & 0x0f0000) >> 16; + /* Early version of Elan touchpads doesn't obey the rule. */ if (etd->fw_version < 0x020030 || etd->fw_version == 0x020600) etd->hw_version = 1; - else if (etd->fw_version < 0x150600) - etd->hw_version = 2; - else if (ver == 5) - etd->hw_version = 3; - else if (ver == 6) - etd->hw_version = 4; - else - return -1; + else { + switch (ver) { + case 2: + case 4: + etd->hw_version = 2; + break; + case 5: + etd->hw_version = 3; + break; + case 6: + etd->hw_version = 4; + break; + default: + return -1; + } + } /* * Turn on packet checking by default.