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
next prev parent 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.