From patchwork Wed Nov 30 10:11:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phidias Chiang X-Patchwork-Id: 700936 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 3tTGQm12vjz9t2N; Wed, 30 Nov 2016 21:11:12 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1cC1r3-0007kZ-Fh; Wed, 30 Nov 2016 10:11:09 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1cC1qx-0007i1-8f for kernel-team@lists.ubuntu.com; Wed, 30 Nov 2016 10:11:03 +0000 Received: from 114-34-181-73.hinet-ip.hinet.net ([114.34.181.73] helo=ktx.tw) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1cC1qw-0003St-Eh for kernel-team@lists.ubuntu.com; Wed, 30 Nov 2016 10:11:02 +0000 From: Phidias Chiang To: kernel-team@lists.ubuntu.com Subject: [SRU][Xenial][Yakkety][PATCH 3/4] Input: ALPS - allow touchsticks to report pressure Date: Wed, 30 Nov 2016 18:11:01 +0800 Message-Id: <1480500662-23888-4-git-send-email-phidias.chiang@canonical.com> X-Mailer: git-send-email 2.7.3 In-Reply-To: <1480500662-23888-1-git-send-email-phidias.chiang@canonical.com> References: <1480500662-23888-1-git-send-email-phidias.chiang@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: kernel-team-bounces@lists.ubuntu.com From: Ben Gamari BugLink: http://bugs.launchpad.net/bugs/1571530 The SS5 hardware can report this. Tested-by: Michal Hocko Signed-off-by: Ben Gamari Signed-off-by: Dmitry Torokhov (cherry picked from commit 7ad8a1067dfc3bf74ad2daef013ea4f3df1841a7) Signed-off-by: Phidias Chiang --- drivers/input/mouse/alps.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index b32bfd1..58d5f4d 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c @@ -102,6 +102,7 @@ static const struct alps_nibble_commands alps_v6_nibble_commands[] = { 6-byte ALPS packet */ #define ALPS_STICK_BITS 0x100 /* separate stick button bits */ #define ALPS_BUTTONPAD 0x200 /* device is a clickpad */ +#define ALPS_DUALPOINT_WITH_PRESSURE 0x400 /* device can report trackpoint pressure */ static const struct alps_model_info alps_model_data[] = { { { 0x32, 0x02, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, /* Toshiba Salellite Pro M10 */ @@ -1271,9 +1272,11 @@ static int alps_decode_ss4_v2(struct alps_fields *f, } else { int x = (s8)(((p[0] & 1) << 7) | (p[1] & 0x7f)); int y = (s8)(((p[3] & 1) << 7) | (p[2] & 0x7f)); + int pressure = (s8)(p[4] & 0x7f); input_report_rel(priv->dev2, REL_X, x); input_report_rel(priv->dev2, REL_Y, -y); + input_report_abs(priv->dev2, ABS_PRESSURE, pressure); } break; @@ -2992,6 +2995,10 @@ int alps_init(struct psmouse *psmouse) input_set_capability(dev2, EV_REL, REL_X); input_set_capability(dev2, EV_REL, REL_Y); + if (priv->flags & ALPS_DUALPOINT_WITH_PRESSURE) { + input_set_capability(dev2, EV_ABS, ABS_PRESSURE); + input_set_abs_params(dev2, ABS_PRESSURE, 0, 127, 0, 0); + } input_set_capability(dev2, EV_KEY, BTN_LEFT); input_set_capability(dev2, EV_KEY, BTN_RIGHT); input_set_capability(dev2, EV_KEY, BTN_MIDDLE);