summaryrefslogtreecommitdiffstats
path: root/drivers/input/mouse/synaptics.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-07-31 15:19:22 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-07-31 15:19:22 +0200
commitf13b1035ce8bbc27d4ce7c281cddd2718f2cf5b0 (patch)
tree44419bd03c33e662302dd003f57d36e133144f91 /drivers/input/mouse/synaptics.c
parentMerge branch 'l7200' into devel (diff)
parentARM: 6277/1: mach-shmobile: Allow users to select HZ, default to 128 (diff)
downloadlinux-f13b1035ce8bbc27d4ce7c281cddd2718f2cf5b0.tar.xz
linux-f13b1035ce8bbc27d4ce7c281cddd2718f2cf5b0.zip
Merge branch 'shmobile' into devel
Diffstat (limited to 'drivers/input/mouse/synaptics.c')
-rw-r--r--drivers/input/mouse/synaptics.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 40cea334ad13..705589dc9ac5 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -141,8 +141,13 @@ static int synaptics_capability(struct psmouse *psmouse)
priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2];
priv->ext_cap = priv->ext_cap_0c = 0;
- if (!SYN_CAP_VALID(priv->capabilities))
+ /*
+ * Older firmwares had submodel ID fixed to 0x47
+ */
+ if (SYN_ID_FULL(priv->identity) < 0x705 &&
+ SYN_CAP_SUBMODEL_ID(priv->capabilities) != 0x47) {
return -1;
+ }
/*
* Unless capExtended is set the rest of the flags should be ignored
@@ -206,6 +211,7 @@ static int synaptics_resolution(struct psmouse *psmouse)
unsigned char max[3];
if (SYN_ID_MAJOR(priv->identity) < 4)
+ return 0;
if (synaptics_send_cmd(psmouse, SYN_QUE_RESOLUTION, res) == 0) {
if (res[0] != 0 && (res[1] & 0x80) && res[2] != 0) {