Commit c7f0522 uses sixteen bits of data in the construction of 'strip1'
and 'strip2'. This can cause problems in some cases, however, since some
tablets store flags in the MSB of data[2] and data[4] that should not be
included in these values. This restores the 0x1f mask that used prior
to c7f0522.

NOTE: This patch was backported earlier, but only as far back as 2.6.38.
To make backporting the next few patches easier, we complete this backport
all the way to 2.6.30.

Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
Signed-off-by: Jiri Kosina <jkos...@suse.cz>
[jason.gere...@wacom.com: Imported into input-wacom repository (f73d08d)]
Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
[jason.gere...@wacom.com: backported from input-wacom 497c6e1]
Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
[jason.gere...@wacom.com: backported from input-wacom (be4569c)]
Signed-off-by: Jason Gerecke <jason.gere...@wacom.com>
---
 2.6.30/wacom_wac.c | 4 ++--
 2.6.36/wacom_wac.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/2.6.30/wacom_wac.c b/2.6.30/wacom_wac.c
index 0f0988f..81a78fa 100644
--- a/2.6.30/wacom_wac.c
+++ b/2.6.30/wacom_wac.c
@@ -735,8 +735,8 @@ static int wacom_intuos_pad(struct wacom_wac *wacom)
                                  ((data[6] & 0x0F) << 4)  |
                                  (data[5] & 0x0F);
                }
-               strip1 = (data[1] << 8) | data[2];
-               strip2 = (data[3] << 8) | data[4];
+               strip1 = ((data[1] & 0x1f) << 8) | data[2];
+               strip2 = ((data[3] & 0x1f) << 8) | data[4];
        }
 
        prox = (buttons & ~(~0 << nbuttons)) | (keys & ~(~0 << nkeys)) |
diff --git a/2.6.36/wacom_wac.c b/2.6.36/wacom_wac.c
index a50421f..7eb0d1e 100644
--- a/2.6.36/wacom_wac.c
+++ b/2.6.36/wacom_wac.c
@@ -533,8 +533,8 @@ static int wacom_intuos_pad(struct wacom_wac *wacom)
                                  ((data[6] & 0x0F) << 4)  |
                                  (data[5] & 0x0F);
                }
-               strip1 = (data[1] << 8) | data[2];
-               strip2 = (data[3] << 8) | data[4];
+               strip1 = ((data[1] & 0x1f) << 8) | data[2];
+               strip2 = ((data[3] & 0x1f) << 8) | data[4];
        }
 
        prox = (buttons & ~(~0 << nbuttons)) | (keys & ~(~0 << nkeys)) |
-- 
2.10.2


------------------------------------------------------------------------------
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to