From: "Pali Rohár" <pali.rohar@gmail.com>
To: Paul Donohue <linux-kernel@paulsd.com>
Cc: linux-input@vger.kernel.org, Ben Gamari <ben@smart-cactus.org>,
Michal Hocko <mhocko@suse.com>
Subject: Re: [PATCH v2] Input: ALPS - Fix TrackStick support for SS5 hardware
Date: Sun, 6 Nov 2016 20:59:34 +0100 [thread overview]
Message-ID: <201611062059.35358@pali> (raw)
In-Reply-To: <20161105164458.GF2927@TopQuark.net>
[-- Attachment #1: Type: Text/Plain, Size: 3153 bytes --]
On Saturday 05 November 2016 17:44:58 Paul Donohue wrote:
> The current Alps SS5 (SS4 v2) code generates bogus TouchPad events when
> TrackStick packets are processed.
>
> This causes the xorg synaptics driver to print
> "unable to find touch point 0" and
> "BUG: triggered 'if (priv->num_active_touches > priv->num_slots)'"
> messages. It also causes unexpected TouchPad button release and reclick
> event sequences if the TrackStick is moved while holding a TouchPad
> button.
>
> This commit corrects the problem by adjusting
> alps_process_packet_ss4_v2() so that it only sends TrackStick reports
> when processing TrackStick packets.
>
> Signed-off-by: Paul Donohue <linux-kernel@PaulSD.com>
>
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 6d7de9b..1d0302b 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -1279,6 +1279,8 @@ static int alps_decode_ss4_v2(struct alps_fields *f,
> input_report_rel(priv->dev2, REL_Y, -y);
> input_report_abs(priv->dev2, ABS_PRESSURE, pressure);
> }
> + f->first_mp = 0;
> + f->is_mp = 0;
> break;
>
> case SS4_PACKET_ID_IDLE:
> @@ -1346,18 +1348,18 @@ static void alps_process_packet_ss4_v2(struct psmouse *psmouse)
>
> priv->multi_packet = 0;
>
> - alps_report_mt_data(psmouse, (f->fingers <= 4) ? f->fingers : 4);
> + if ((packet[3] & 0x30) != 0x20) {
Ideally adds comment that this is test for SS4_PACKET_ID_STICK.
> + alps_report_mt_data(psmouse, (f->fingers <= 4) ? f->fingers : 4);
>
> - input_mt_report_finger_count(dev, f->fingers);
> + input_mt_report_finger_count(dev, f->fingers);
>
> - input_report_key(dev, BTN_LEFT, f->left);
> - input_report_key(dev, BTN_RIGHT, f->right);
> - input_report_key(dev, BTN_MIDDLE, f->middle);
> + input_report_key(dev, BTN_LEFT, f->left);
> + input_report_key(dev, BTN_RIGHT, f->right);
> + input_report_key(dev, BTN_MIDDLE, f->middle);
>
> - input_report_abs(dev, ABS_PRESSURE, f->pressure);
> - input_sync(dev);
> -
> - if (priv->flags & ALPS_DUALPOINT) {
> + input_report_abs(dev, ABS_PRESSURE, f->pressure);
> + input_sync(dev);
> + } else if (priv->flags & ALPS_DUALPOINT) {
> input_report_key(dev2, BTN_LEFT, f->ts_left);
> input_report_key(dev2, BTN_RIGHT, f->ts_right);
> input_report_key(dev2, BTN_MIDDLE, f->ts_middle);
>
Otherwise this patch looks OK.
Anyway, I looked into alps.c source code and I see there another
problem with ss4 devices. Function alps_decode_ss4_v2() calls
input_report_*() functions without input_sync(). But all those
input_report_*() should be in alps_process_packet_ss4_v2().
Would you like to fix this problem?
I think due to this problem, original code contains that BUG reported
by you...
--
Pali Rohár
pali.rohar@gmail.com
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2016-11-07 0:24 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-24 21:01 [PATCH] Input: ALPS - Fix TrackStick support for SS5 hardware Paul Donohue
2016-11-01 9:35 ` Pali Rohár
2016-11-05 16:30 ` Paul Donohue
2016-11-05 16:44 ` [PATCH v2] " Paul Donohue
2016-11-06 19:59 ` Pali Rohár [this message]
2016-11-08 14:24 ` Paul Donohue
2016-11-06 19:57 ` [PATCH] " Pali Rohár
2016-11-08 14:54 ` [PATCH v3 1/3] " Paul Donohue
2016-11-08 14:59 ` [PATCH v3 2/3] " Paul Donohue
2016-11-08 15:06 ` Paul Donohue
2016-11-08 15:14 ` [PATCH v4 1/3] " Paul Donohue
2016-11-08 15:16 ` [PATCH v4 2/3] Input: ALPS - Clean up TrackStick handling " Paul Donohue
2016-11-08 15:17 ` [PATCH v4 3/3] Input: ALPS - Clean up code " Paul Donohue
2016-11-08 15:46 ` Paul Donohue
2016-11-08 15:49 ` Paul Donohue
2016-11-09 12:14 ` [PATCH v4 2/3] Input: ALPS - Clean up TrackStick handling " Pali Rohár
2016-11-10 14:27 ` Paul Donohue
2016-11-10 15:19 ` Pali Rohár
2016-11-10 16:44 ` [PATCH v5 0/3] Input: ALPS - Bug fix and cleanup " Paul Donohue
2016-11-10 16:44 ` [PATCH v5 1/3] Input: ALPS - Fix TrackStick support " Paul Donohue
2016-11-10 16:44 ` [PATCH v5 2/3] Input: ALPS - Clean up TrackStick handling " Paul Donohue
2016-11-10 16:44 ` [PATCH v5 3/3] Input: ALPS - Clean up code " Paul Donohue
2016-11-11 13:59 ` [PATCH v5 0/3] Input: ALPS - Bug fix and cleanup " Pali Rohár
2016-11-12 0:56 ` Dmitry Torokhov
2016-11-12 1:03 ` Pali Rohár
2016-11-12 1:06 ` Dmitry Torokhov
2016-11-12 12:29 ` Pali Rohár
2016-11-13 6:43 ` Dmitry Torokhov
2016-11-13 10:31 ` Pali Rohár
2016-11-13 15:28 ` Paul Donohue
2016-11-24 14:25 ` [PATCH v6 " Paul Donohue
2016-11-24 14:25 ` [PATCH v6 1/3] Input: ALPS - Fix TrackStick support " Paul Donohue
2016-11-24 14:25 ` [PATCH v6 2/3] Input: ALPS - Clean up TrackStick handling " Paul Donohue
2016-11-24 14:25 ` [PATCH v6 3/3] Input: ALPS - Clean up code " Paul Donohue
2016-11-09 12:12 ` [PATCH v4 1/3] Input: ALPS - Fix TrackStick support " Pali Rohár
2016-11-10 14:17 ` Paul Donohue
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=201611062059.35358@pali \
--to=pali.rohar@gmail.com \
--cc=ben@smart-cactus.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@paulsd.com \
--cc=mhocko@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox