All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: "Pali Rohár" <pali.rohar@gmail.com>,
	"Jonathan Corbet" <corbet@lwn.net>,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-input@vger.kernel.org
Subject: Re: [PATCH] Input: ALPS: Move v7 packet info to Documentation and v6 packet info
Date: Sun, 15 Feb 2015 16:03:52 -0800	[thread overview]
Message-ID: <20150216000352.GA36611@dtor-ws> (raw)
In-Reply-To: <54DB06E5.7020403@redhat.com>

On Wed, Feb 11, 2015 at 08:38:13AM +0100, Hans de Goede wrote:
> Hi,
> 
> On 10-02-15 13:43, Pali Rohár wrote:
> >This patch move all packet info from driver source code to documentation
> >and adds info about v6 packet format (from driver source code).
> >
> >Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> 
> Thanks for doing this:
> 
> Acked-by: Hans de Goede <hdegoede@redhat.com>

Applied, thank you.

> 
> Regards,
> 
> Hans
> 
> >---
> >  Documentation/input/alps.txt |   68 ++++++++++++++++++++++++++++++++++++++++--
> >  drivers/input/mouse/alps.c   |   39 ------------------------
> >  2 files changed, 66 insertions(+), 41 deletions(-)
> >
> >diff --git a/Documentation/input/alps.txt b/Documentation/input/alps.txt
> >index 90bca6f..a63e5e0 100644
> >--- a/Documentation/input/alps.txt
> >+++ b/Documentation/input/alps.txt
> >@@ -3,8 +3,8 @@ ALPS Touchpad Protocol
> >
> >  Introduction
> >  ------------
> >-Currently the ALPS touchpad driver supports five protocol versions in use by
> >-ALPS touchpads, called versions 1, 2, 3, 4 and 5.
> >+Currently the ALPS touchpad driver supports seven protocol versions in use by
> >+ALPS touchpads, called versions 1, 2, 3, 4, 5, 6 and 7.
> >
> >  Since roughly mid-2010 several new ALPS touchpads have been released and
> >  integrated into a variety of laptops and netbooks.  These new touchpads
> >@@ -240,3 +240,67 @@ For mt, the format is:
> >   byte 3:    0  x23  x22   x21 x20  x19  x18   x17
> >   byte 4:    0   x9   x8    x7  x6   x5   x4    x3
> >   byte 5:    0  x16  x15   x14 x13  x12  x11   x10
> >+
> >+ALPS Absolute Mode - Protocol Version 6
> >+---------------------------------------
> >+
> >+For trackstick packet, the format is:
> >+
> >+ byte 0:    1    1    1    1    1    1    1    1
> >+ byte 1:    0   X6   X5   X4   X3   X2   X1   X0
> >+ byte 2:    0   Y6   Y5   Y4   Y3   Y2   Y1   Y0
> >+ byte 3:    ?   Y7   X7    ?    ?    M    R    L
> >+ byte 4:   Z7   Z6   Z5   Z4   Z3   Z2   Z1   Z0
> >+ byte 5:    0    1    1    1    1    1    1    1
> >+
> >+For touchpad packet, the format is:
> >+
> >+ byte 0:    1    1    1    1    1    1    1    1
> >+ byte 1:    0    0    0    0   x3   x2   x1   x0
> >+ byte 2:    0    0    0    0   y3   y2   y1   y0
> >+ byte 3:    ?   x7   x6   x5   x4    ?    r    l
> >+ byte 4:    ?   y7   y6   y5   y4    ?    ?    ?
> >+ byte 5:   z7   z6   z5   z4   z3   z2   z1   z0
> >+
> >+(v6 touchpad does not have middle button)
> >+
> >+ALPS Absolute Mode - Protocol Version 7
> >+---------------------------------------
> >+
> >+For trackstick packet, the format is:
> >+
> >+ byte 0:    0    1    0    0    1    0    0    0
> >+ byte 1:    1    1    *    *    1    M    R    L
> >+ byte 2:   X7    1   X5   X4   X3   X2   X1   X0
> >+ byte 3:   Z6    1   Y6   X6    1   Y2   Y1   Y0
> >+ byte 4:   Y7    0   Y5   Y4   Y3    1    1    0
> >+ byte 5:  T&P    0   Z5   Z4   Z3   Z2   Z1   Z0
> >+
> >+For touchpad packet, the format is:
> >+
> >+         packet-fmt     b7     b6     b5     b4     b3     b2     b1     b0
> >+ byte 0: TWO & MULTI     L      1      R      M      1   Y0-2   Y0-1   Y0-0
> >+ byte 0: NEW             L      1   X1-5      1      1   Y0-2   Y0-1   Y0-0
> >+ byte 1:             Y0-10   Y0-9   Y0-8   Y0-7   Y0-6   Y0-5   Y0-4   Y0-3
> >+ byte 2:             X0-11      1  X0-10   X0-9   X0-8   X0-7   X0-6   X0-5
> >+ byte 3:             X1-11      1   X0-4   X0-3      1   X0-2   X0-1   X0-0
> >+ byte 4: TWO         X1-10    TWO   X1-9   X1-8   X1-7   X1-6   X1-5   X1-4
> >+ byte 4: MULTI       X1-10    TWO   X1-9   X1-8   X1-7   X1-6   Y1-5      1
> >+ byte 4: NEW         X1-10    TWO   X1-9   X1-8   X1-7   X1-6      0      0
> >+ byte 5: TWO & NEW   Y1-10      0   Y1-9   Y1-8   Y1-7   Y1-6   Y1-5   Y1-4
> >+ byte 5: MULTI       Y1-10      0   Y1-9   Y1-8   Y1-7   Y1-6    F-1    F-0
> >+
> >+ L:         Left button
> >+ R / M:     Non-clickpads: Right / Middle button
> >+            Clickpads: When > 2 fingers are down, and some fingers
> >+            are in the button area, then the 2 coordinates reported
> >+            are for fingers outside the button area and these report
> >+            extra fingers being present in the right / left button
> >+            area. Note these fingers are not added to the F field!
> >+            so if a TWO packet is received and R = 1 then there are
> >+            3 fingers down, etc.
> >+ TWO:       1: Two touches present, byte 0/4/5 are in TWO fmt
> >+            0: If byte 4 bit 0 is 1, then byte 0/4/5 are in MULTI fmt
> >+               otherwise byte 0 bit 4 must be set and byte 0/4/5 are
> >+               in NEW fmt
> >+ F:         Number of fingers - 3, 0 means 3 fingers, 1 means 4 ...
> >diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> >index d88d73d..5ac2a91 100644
> >--- a/drivers/input/mouse/alps.c
> >+++ b/drivers/input/mouse/alps.c
> >@@ -881,34 +881,6 @@ static void alps_get_finger_coordinate_v7(struct input_mt_pos *mt,
> >  					  unsigned char *pkt,
> >  					  unsigned char pkt_id)
> >  {
> >-	/*
> >-	 *       packet-fmt    b7   b6    b5   b4   b3   b2   b1   b0
> >-	 * Byte0 TWO & MULTI    L    1     R    M    1 Y0-2 Y0-1 Y0-0
> >-	 * Byte0 NEW            L    1  X1-5    1    1 Y0-2 Y0-1 Y0-0
> >-	 * Byte1            Y0-10 Y0-9  Y0-8 Y0-7 Y0-6 Y0-5 Y0-4 Y0-3
> >-	 * Byte2            X0-11    1 X0-10 X0-9 X0-8 X0-7 X0-6 X0-5
> >-	 * Byte3            X1-11    1  X0-4 X0-3    1 X0-2 X0-1 X0-0
> >-	 * Byte4 TWO        X1-10  TWO  X1-9 X1-8 X1-7 X1-6 X1-5 X1-4
> >-	 * Byte4 MULTI      X1-10  TWO  X1-9 X1-8 X1-7 X1-6 Y1-5    1
> >-	 * Byte4 NEW        X1-10  TWO  X1-9 X1-8 X1-7 X1-6    0    0
> >-	 * Byte5 TWO & NEW  Y1-10    0  Y1-9 Y1-8 Y1-7 Y1-6 Y1-5 Y1-4
> >-	 * Byte5 MULTI      Y1-10    0  Y1-9 Y1-8 Y1-7 Y1-6  F-1  F-0
> >-	 * L:         Left button
> >-	 * R / M:     Non-clickpads: Right / Middle button
> >-	 *            Clickpads: When > 2 fingers are down, and some fingers
> >-	 *            are in the button area, then the 2 coordinates reported
> >-	 *            are for fingers outside the button area and these report
> >-	 *            extra fingers being present in the right / left button
> >-	 *            area. Note these fingers are not added to the F field!
> >-	 *            so if a TWO packet is received and R = 1 then there are
> >-	 *            3 fingers down, etc.
> >-	 * TWO:       1: Two touches present, byte 0/4/5 are in TWO fmt
> >-	 *            0: If byte 4 bit 0 is 1, then byte 0/4/5 are in MULTI fmt
> >-	 *               otherwise byte 0 bit 4 must be set and byte 0/4/5 are
> >-	 *               in NEW fmt
> >-	 * F:         Number of fingers - 3, 0 means 3 fingers, 1 means 4 ...
> >-	 */
> >-
> >  	mt[0].x = ((pkt[2] & 0x80) << 4);
> >  	mt[0].x |= ((pkt[2] & 0x3F) << 5);
> >  	mt[0].x |= ((pkt[3] & 0x30) >> 1);
> >@@ -1026,17 +998,6 @@ static void alps_process_trackstick_packet_v7(struct psmouse *psmouse)
> >  	struct input_dev *dev2 = priv->dev2;
> >  	int x, y, z, left, right, middle;
> >
> >-	/*
> >-	 *        b7 b6 b5 b4 b3 b2 b1 b0
> >-	 * Byte0   0  1  0  0  1  0  0  0
> >-	 * Byte1   1  1  *  *  1  M  R  L
> >-	 * Byte2  X7  1 X5 X4 X3 X2 X1 X0
> >-	 * Byte3  Z6  1 Y6 X6  1 Y2 Y1 Y0
> >-	 * Byte4  Y7  0 Y5 Y4 Y3  1  1  0
> >-	 * Byte5 T&P  0 Z5 Z4 Z3 Z2 Z1 Z0
> >-	 * M / R / L: Middle / Right / Left button
> >-	 */
> >-
> >  	x = ((packet[2] & 0xbf)) | ((packet[3] & 0x10) << 2);
> >  	y = (packet[3] & 0x07) | (packet[4] & 0xb8) |
> >  	    ((packet[3] & 0x20) << 1);
> >

-- 
Dmitry

  reply	other threads:[~2015-02-16  0:03 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-10 12:43 [PATCH] Input: ALPS: Move v7 packet info to Documentation and v6 packet info Pali Rohár
2015-02-11  7:38 ` Hans de Goede
2015-02-16  0:03   ` Dmitry Torokhov [this message]
2015-02-16 17:28 ` Jonathan Corbet
2015-02-16 17:28   ` Jonathan Corbet
2015-02-16 17:36   ` Pali Rohár

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150216000352.GA36611@dtor-ws \
    --to=dmitry.torokhov@gmail.com \
    --cc=corbet@lwn.net \
    --cc=hdegoede@redhat.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pali.rohar@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.