Linux Input/HID development
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Gabor Balla <gaborwho@gmail.com>
Cc: "linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
	Benjamin Tissoires <benjamin.tissoires@gmail.com>,
	Stephen Chandler Paul <thatslyude@gmail.com>,
	Nick Bowler <nbowler@draconx.ca>,
	Andrew Duggan <andrew.duggan@gmail.com>
Subject: Re: PROBLEM: Missing events on thinkpad trackpoint buttons
Date: Mon, 24 Aug 2015 10:57:29 -0700	[thread overview]
Message-ID: <20150824175729.GC22442@dtor-ws> (raw)
In-Reply-To: <20150820231339.GA7236@localhost>

On Thu, Aug 20, 2015 at 04:13:39PM -0700, Dmitry Torokhov wrote:
> On Thu, Aug 20, 2015 at 04:08:40PM -0700, Dmitry Torokhov wrote:
> > Hi Gabor,
> > 
> > On Fri, Aug 21, 2015 at 01:05:46AM +0200, Gabor Balla wrote:
> > > Hi Dmitry,
> > > 
> > > On Fri, Aug 21, 2015 at 1:01 AM, Dmitry Torokhov
> > > <dmitry.torokhov@gmail.com> wrote:
> > > > On Thu, Aug 20, 2015 at 3:56 PM, Dmitry Torokhov
> > > > <dmitry.torokhov@gmail.com> wrote:
> > > >> On Fri, Aug 21, 2015 at 12:24:59AM +0200, Gabor Balla wrote:
> > > >>> Hi Dmitry,
> > > >>>
> > > >>> On Thu, Aug 20, 2015 at 11:35 PM, Dmitry Torokhov
> > > >>> <dmitry.torokhov@gmail.com> wrote:
> > > >>> > On Thu, Aug 20, 2015 at 10:50:27PM +0200, Gabor Balla wrote:
> > > [...]
> > > > Ah, wait, not quite still. So we actually do want to disable gestures
> > > > when in Absolute mode (non extended). Although frankly I do not think
> > > > we'll ever see pre 4.0 Synaptics device in a wild.
> > > 
> > > Also notice there is a function called synaptics_set_disable_gesture that can
> > > change that bit regardless of current mode.
> > 
> > That attribute is only created when touchpad is used in relative mode,
> > so should be OK.
> > 
> > Thanks.
> 
> How about this one?

Nick, Benjamin, could you please give this a spin?

> 
> Thanks.
> 
> -- 
> Dmitry
> 
> 
> Input: synaptics - fix handling of disabling gesture mode
> 
> From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> 
> 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>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
>  drivers/input/mouse/synaptics.c |   12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
> index 28daca1..d9c9e41 100644
> --- a/drivers/input/mouse/synaptics.c
> +++ b/drivers/input/mouse/synaptics.c
> @@ -519,14 +519,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 (!(priv->mode & SYN_BIT_W_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;

-- 
Dmitry

  parent reply	other threads:[~2015-08-24 17:57 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-20 20:50 PROBLEM: Missing events on thinkpad trackpoint buttons Gabor Balla
2015-08-20 21:35 ` Dmitry Torokhov
2015-08-20 22:24   ` Gabor Balla
2015-08-20 22:42     ` Gabor Balla
2015-08-20 22:56     ` Dmitry Torokhov
2015-08-20 23:01       ` Dmitry Torokhov
2015-08-20 23:05         ` Gabor Balla
2015-08-20 23:08           ` Dmitry Torokhov
2015-08-20 23:13             ` Dmitry Torokhov
2015-08-20 23:35               ` Gabor Balla
2015-08-21  0:06                 ` Dmitry Torokhov
2015-08-24 17:57               ` Dmitry Torokhov [this message]
2015-08-24 23:44                 ` Nick Bowler
     [not found]               ` <CAN+gG=H88uVbRun=Vs1r1b8jM=wpnC1285BquFpDsh8HQdr07Q@mail.gmail.com>
2015-09-27 12:14                 ` Benjamin Tissoires
2015-09-28 22:52                   ` Dmitry Torokhov
2015-09-29  0:22                     ` Nick Bowler
2015-09-29  0:26                       ` Dmitry Torokhov
  -- strict thread matches above, loose matches on Subject: below --
2015-08-18  2:31 Nick Bowler
2015-08-18 19:06 ` Benjamin Tissoires
2015-08-19 13:52   ` Benjamin Tissoires
2015-08-19 14:10     ` Nick Bowler
2015-08-19 14:12       ` Benjamin Tissoires
2015-08-19 21:27     ` Dmitry Torokhov
2015-08-19 21:33       ` Stephen Chandler Paul
2015-08-19 21:34       ` Benjamin Tissoires

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=20150824175729.GC22442@dtor-ws \
    --to=dmitry.torokhov@gmail.com \
    --cc=andrew.duggan@gmail.com \
    --cc=benjamin.tissoires@gmail.com \
    --cc=gaborwho@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=nbowler@draconx.ca \
    --cc=thatslyude@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox