Thread (18 messages) 18 messages, 4 authors, 2015-01-07

Re: [PATCH 2/2] input: synaptics - fix width calculation on image sensors

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2015-01-05 19:04:18
Also in: lkml

On January 5, 2015 10:42:13 AM PST, Benjamin Tissoires [off-list ref] wrote:
On Mon, Jan 5, 2015 at 1:37 PM, Gabriele Mazzotta
[off-list ref] wrote:
quoted
On Monday 05 January 2015 13:25:38 Benjamin Tissoires wrote:
quoted
Hi Gabriele,

On Sat, Dec 27, 2014 at 6:31 AM, Gabriele Mazzotta
[off-list ref] wrote:
quoted
When two or more fingers are on the touchpad, the 'w' slot holds
the
quoted
quoted
quoted
finger count rather than the width. Retrieve the correct value
encoded
quoted
quoted
quoted
in the lower bits of 'x', 'y' and 'z'.

The minimum width reported is 8 rather than 4 in this case, while
the
quoted
quoted
quoted
maximum remains 15.

Signed-off-by: Gabriele Mazzotta <redacted>
---
 drivers/input/mouse/synaptics.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/input/mouse/synaptics.c
b/drivers/input/mouse/synaptics.c
quoted
quoted
quoted
index ea0563e..5ff4c5b 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -593,7 +593,9 @@ static void synaptics_parse_agm(const unsigned
char buf[],
quoted
quoted
quoted
        switch (agm_packet_type) {
        case 1:
                /* Gesture packet: (x, y, z) half resolution */
-               agm->w = hw->w;
+               agm->w = ((buf[1] & 0x01) |
+                         ((buf[2] & 0x01) << 1) |
+                         ((buf[5] & 0x01) << 2)) + 8;
                agm->x = (((buf[4] & 0x0f) << 8) | buf[1]) << 1;
For completeness, I think, we should also removes the w bits from x,
y
quoted
quoted
and z (by masking buf[1], buf[2] and buf[5] with 0xfe).
You are right, I forgot about it.

I was going to re-submit these patches anyway since there have been
quite a few changes and these can no longer be applied on next.
OK, I am trying to put together my thoughts for 1/2 right now. If you
could just wait a little before resubmitting, I would be grateful.
BTW, do we really get different widths four different contacts?

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help