diff mbox

[3.16.y-ckt,stable] Patch "Input: synaptics - fix handling of disabling gesture mode" has been added to staging queue

Message ID 1443460879-3839-1-git-send-email-luis.henriques@canonical.com
State New
Headers show

Commit Message

Luis Henriques Sept. 28, 2015, 5:21 p.m. UTC
This is a note to let you know that I have just added a patch titled

    Input: synaptics - fix handling of disabling gesture mode

to the linux-3.16.y-queue branch of the 3.16.y-ckt extended stable tree 
which can be found at:

    http://kernel.ubuntu.com/git/ubuntu/linux.git/log/?h=linux-3.16.y-queue

This patch is scheduled to be released in version 3.16.7-ckt18.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.16.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

From 12f5843046c17c29b60abfae914228ab36b9c1b4 Mon Sep 17 00:00:00 2001
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: Thu, 20 Aug 2015 14:28:48 -0700
Subject: Input: synaptics - fix handling of disabling gesture mode

commit e51e38494a8ecc18650efb0c840600637891de2c upstream.

Bit 2 of the mode byte has dual meaning: it can disable reporting of
gestures when touchpad works in Relative mode or normal Absolute mode,
or it can enable so called Extended W-Mode when touchpad uses enhanced
Absolute mode (W-mode). The extended W-Mode confuses our driver and
causes missing button presses on some Thinkpads (x250, T450s), so let's
make sure we do not enable it.

Also, according to the spec W mode "... bit is defined only in Absolute
mode on pads whose capExtended capability bit is set. In Relative mode and
in TouchPads without this capability, the bit is reserved and should be
left at 0.", so let's make sure we respect this requirement as well.

Reported-by: Nick Bowler <nbowler@draconx.ca>
Suggested-by: Gabor Balla <gaborwho@gmail.com>
Tested-by: Gabor Balla <gaborwho@gmail.com>
Tested-by: Nick Bowler <nbowler@draconx.ca>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 drivers/input/mouse/synaptics.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Dmitry Torokhov Sept. 28, 2015, 6:50 p.m. UTC | #1
Hi Luis,


On Mon, Sep 28, 2015 at 10:21 AM, Luis Henriques
<luis.henriques@canonical.com> wrote:
> This is a note to let you know that I have just added a patch titled
>
>     Input: synaptics - fix handling of disabling gesture mode
>
> to the linux-3.16.y-queue branch of the 3.16.y-ckt extended stable tree
> which can be found at:
>
>     http://kernel.ubuntu.com/git/ubuntu/linux.git/log/?h=linux-3.16.y-queue
>
> This patch is scheduled to be released in version 3.16.7-ckt18.
>
> If you, or anyone else, feels it should not be added to this tree, please
> reply to this email.

Please hold off applying this just yet - there might have been issues
with this patch.

Thanks.
Luis Henriques Sept. 29, 2015, 9:25 a.m. UTC | #2
On Mon, Sep 28, 2015 at 11:50:44AM -0700, Dmitry Torokhov wrote:
> Hi Luis,
> 
> 
> On Mon, Sep 28, 2015 at 10:21 AM, Luis Henriques
> <luis.henriques@canonical.com> wrote:
> > This is a note to let you know that I have just added a patch titled
> >
> >     Input: synaptics - fix handling of disabling gesture mode
> >
> > to the linux-3.16.y-queue branch of the 3.16.y-ckt extended stable tree
> > which can be found at:
> >
> >     http://kernel.ubuntu.com/git/ubuntu/linux.git/log/?h=linux-3.16.y-queue
> >
> > This patch is scheduled to be released in version 3.16.7-ckt18.
> >
> > If you, or anyone else, feels it should not be added to this tree, please
> > reply to this email.
> 
> Please hold off applying this just yet - there might have been issues
> with this patch.

Thank you Dmitry.  Is there any public discussion on this?  Also, please
note that other kernels already have queued this patch (but none has been
released yet).

Cheers,
--
Luís
Luis Henriques Sept. 29, 2015, 3:44 p.m. UTC | #3
On Tue, Sep 29, 2015 at 10:25:26AM +0100, Luis Henriques wrote:
> On Mon, Sep 28, 2015 at 11:50:44AM -0700, Dmitry Torokhov wrote:
> > Hi Luis,
> > 
> > 
> > On Mon, Sep 28, 2015 at 10:21 AM, Luis Henriques
> > <luis.henriques@canonical.com> wrote:
> > > This is a note to let you know that I have just added a patch titled
> > >
> > >     Input: synaptics - fix handling of disabling gesture mode
> > >
> > > to the linux-3.16.y-queue branch of the 3.16.y-ckt extended stable tree
> > > which can be found at:
> > >
> > >     http://kernel.ubuntu.com/git/ubuntu/linux.git/log/?h=linux-3.16.y-queue
> > >
> > > This patch is scheduled to be released in version 3.16.7-ckt18.
> > >
> > > If you, or anyone else, feels it should not be added to this tree, please
> > > reply to this email.
> > 
> > Please hold off applying this just yet - there might have been issues
> > with this patch.
> 
> Thank you Dmitry.  Is there any public discussion on this?  Also, please
> note that other kernels already have queued this patch (but none has been
> released yet).
>

Ok, found the discussion[1] and looks like other kernels are also dropping
this.  Removing it from 3.16.  Again, thanks Dmitry

[1] http://www.spinics.net/lists/linux-input/msg41176.html

Cheers,
--
Luís
diff mbox

Patch

diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 378af3fa747d..3ff89b52f10e 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -487,14 +487,18 @@  static int synaptics_set_mode(struct psmouse *psmouse)
 	struct synaptics_data *priv = psmouse->private;

 	priv->mode = 0;
-	if (priv->absolute_mode)
+
+	if (priv->absolute_mode) {
 		priv->mode |= SYN_BIT_ABSOLUTE_MODE;
-	if (priv->disable_gesture)
+		if (SYN_CAP_EXTENDED(priv->capabilities))
+			priv->mode |= SYN_BIT_W_MODE;
+	}
+
+	if (!SYN_MODE_WMODE(priv->mode) && priv->disable_gesture)
 		priv->mode |= SYN_BIT_DISABLE_GESTURE;
+
 	if (psmouse->rate >= 80)
 		priv->mode |= SYN_BIT_HIGH_RATE;
-	if (SYN_CAP_EXTENDED(priv->capabilities))
-		priv->mode |= SYN_BIT_W_MODE;

 	if (synaptics_mode_cmd(psmouse, priv->mode))
 		return -1;