linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Input: synaptics_rmi4 - register F03 port as pass-through serio
@ 2017-06-07  6:51 Dmitry Torokhov
  2017-06-07  7:02 ` Benjamin Tissoires
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Torokhov @ 2017-06-07  6:51 UTC (permalink / raw)
  To: linux-input
  Cc: Benjamin Tissoires, Andrew Duggan, Lyude Paul,
	Damjan Georgievski, Masaki Ota, linux-kernel

The 5th generation Thinkpad X1 Carbons use Synaptics touchpads accessible
over SMBus/RMI, combined with ALPS or Elantech trackpoint devices instead
of classic IBM/Lenovo trackpoints. Unfortunately there is no way for ALPS
driver to detect whether it is dealing with touchpad + trackpoint
combination or just a trackpoint, so we end up with a "phantom" dualpoint
ALPS device in addition to real touchpad and trackpoint.

Given that we do not have any special advanced handling for ALPS or
Elantech trackpoints (unlike IBM trackpoints that have separate driver and
a host of options) we are better off keeping the trackpoints in PS/2
emulation mode. We achieve that by setting serio type to SERIO_PS_PSTHRU,
which will limit number of protocols psmouse driver will try. In addition
to getting rid of the "phantom" touchpads, this will also speed up probing
of F03 pass-through port.

Reported-by: Damjan Georgievski <gdamjan@gmail.com>
Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/input/rmi4/rmi_f03.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/rmi4/rmi_f03.c b/drivers/input/rmi4/rmi_f03.c
index 77dad045a468..ad71a5e768dc 100644
--- a/drivers/input/rmi4/rmi_f03.c
+++ b/drivers/input/rmi4/rmi_f03.c
@@ -146,7 +146,7 @@ static int rmi_f03_register_pt(struct f03_data *f03)
 	if (!serio)
 		return -ENOMEM;
 
-	serio->id.type = SERIO_8042;
+	serio->id.type = SERIO_PS_PSTHRU;
 	serio->write = rmi_f03_pt_write;
 	serio->port_data = f03;
 
-- 
2.13.0.506.g27d5fe0cd-goog


-- 
Dmitry

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] Input: synaptics_rmi4 - register F03 port as pass-through serio
  2017-06-07  6:51 [PATCH] Input: synaptics_rmi4 - register F03 port as pass-through serio Dmitry Torokhov
@ 2017-06-07  7:02 ` Benjamin Tissoires
  2017-06-07 16:59   ` Dmitry Torokhov
  0 siblings, 1 reply; 4+ messages in thread
From: Benjamin Tissoires @ 2017-06-07  7:02 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: linux-input, Andrew Duggan, Lyude Paul, Damjan Georgievski,
	Masaki Ota, linux-kernel

On Jun 06 2017 or thereabouts, Dmitry Torokhov wrote:
> The 5th generation Thinkpad X1 Carbons use Synaptics touchpads accessible
> over SMBus/RMI, combined with ALPS or Elantech trackpoint devices instead
> of classic IBM/Lenovo trackpoints. Unfortunately there is no way for ALPS
> driver to detect whether it is dealing with touchpad + trackpoint
> combination or just a trackpoint, so we end up with a "phantom" dualpoint
> ALPS device in addition to real touchpad and trackpoint.
> 
> Given that we do not have any special advanced handling for ALPS or
> Elantech trackpoints (unlike IBM trackpoints that have separate driver and
> a host of options) we are better off keeping the trackpoints in PS/2
> emulation mode. We achieve that by setting serio type to SERIO_PS_PSTHRU,
> which will limit number of protocols psmouse driver will try. In addition
> to getting rid of the "phantom" touchpads, this will also speed up probing
> of F03 pass-through port.
> 
> Reported-by: Damjan Georgievski <gdamjan@gmail.com>
> Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---

Thanks for the extensive commit message :)

Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

(tested on a t450s without problems).

Cheers,
Benjamin

>  drivers/input/rmi4/rmi_f03.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/input/rmi4/rmi_f03.c b/drivers/input/rmi4/rmi_f03.c
> index 77dad045a468..ad71a5e768dc 100644
> --- a/drivers/input/rmi4/rmi_f03.c
> +++ b/drivers/input/rmi4/rmi_f03.c
> @@ -146,7 +146,7 @@ static int rmi_f03_register_pt(struct f03_data *f03)
>  	if (!serio)
>  		return -ENOMEM;
>  
> -	serio->id.type = SERIO_8042;
> +	serio->id.type = SERIO_PS_PSTHRU;
>  	serio->write = rmi_f03_pt_write;
>  	serio->port_data = f03;
>  
> -- 
> 2.13.0.506.g27d5fe0cd-goog
> 
> 
> -- 
> Dmitry

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Input: synaptics_rmi4 - register F03 port as pass-through serio
  2017-06-07  7:02 ` Benjamin Tissoires
@ 2017-06-07 16:59   ` Dmitry Torokhov
  2017-06-08 11:58     ` Damjan Georgievski
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Torokhov @ 2017-06-07 16:59 UTC (permalink / raw)
  To: Benjamin Tissoires
  Cc: linux-input, Andrew Duggan, Lyude Paul, Damjan Georgievski,
	Masaki Ota, linux-kernel

On Wed, Jun 07, 2017 at 09:02:55AM +0200, Benjamin Tissoires wrote:
> On Jun 06 2017 or thereabouts, Dmitry Torokhov wrote:
> > The 5th generation Thinkpad X1 Carbons use Synaptics touchpads accessible
> > over SMBus/RMI, combined with ALPS or Elantech trackpoint devices instead
> > of classic IBM/Lenovo trackpoints. Unfortunately there is no way for ALPS
> > driver to detect whether it is dealing with touchpad + trackpoint
> > combination or just a trackpoint, so we end up with a "phantom" dualpoint
> > ALPS device in addition to real touchpad and trackpoint.
> > 
> > Given that we do not have any special advanced handling for ALPS or
> > Elantech trackpoints (unlike IBM trackpoints that have separate driver and
> > a host of options) we are better off keeping the trackpoints in PS/2
> > emulation mode. We achieve that by setting serio type to SERIO_PS_PSTHRU,
> > which will limit number of protocols psmouse driver will try. In addition
> > to getting rid of the "phantom" touchpads, this will also speed up probing
> > of F03 pass-through port.
> > 
> > Reported-by: Damjan Georgievski <gdamjan@gmail.com>
> > Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> > ---
> 
> Thanks for the extensive commit message :)
> 
> Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

Thanks Benjamin.

Damjan, could you please try this patch too before I send it Linus-wards.

> 
> (tested on a t450s without problems).
> 
> Cheers,
> Benjamin
> 
> >  drivers/input/rmi4/rmi_f03.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/input/rmi4/rmi_f03.c b/drivers/input/rmi4/rmi_f03.c
> > index 77dad045a468..ad71a5e768dc 100644
> > --- a/drivers/input/rmi4/rmi_f03.c
> > +++ b/drivers/input/rmi4/rmi_f03.c
> > @@ -146,7 +146,7 @@ static int rmi_f03_register_pt(struct f03_data *f03)
> >  	if (!serio)
> >  		return -ENOMEM;
> >  
> > -	serio->id.type = SERIO_8042;
> > +	serio->id.type = SERIO_PS_PSTHRU;
> >  	serio->write = rmi_f03_pt_write;
> >  	serio->port_data = f03;
> >  
> > -- 
> > 2.13.0.506.g27d5fe0cd-goog
> > 
> > 
> > -- 
> > Dmitry

-- 
Dmitry

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Input: synaptics_rmi4 - register F03 port as pass-through serio
  2017-06-07 16:59   ` Dmitry Torokhov
@ 2017-06-08 11:58     ` Damjan Georgievski
  0 siblings, 0 replies; 4+ messages in thread
From: Damjan Georgievski @ 2017-06-08 11:58 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Benjamin Tissoires, linux-input, Andrew Duggan, Lyude Paul,
	Masaki Ota, linux-kernel

>> Thanks for the extensive commit message :)
>>
>> Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
>
> Thanks Benjamin.
>
> Damjan, could you please try this patch too before I send it Linus-wards.

Hi Dmitry,

I'm not sure what to expect from the patch?
It didn't change anything for me with the default "modprobe psmouse".

when using `modprobe psmouse synaptics_intertouch=1`, I don't get the
trackpoint (nor its buttons) at all.

$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Synaptics TM3289-002                      id=11   [slave  pointer  (2)]






-- 
damjan

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-06-08 11:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-07  6:51 [PATCH] Input: synaptics_rmi4 - register F03 port as pass-through serio Dmitry Torokhov
2017-06-07  7:02 ` Benjamin Tissoires
2017-06-07 16:59   ` Dmitry Torokhov
2017-06-08 11:58     ` Damjan Georgievski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).