Re: [PATCH] Input: synaptics_rmi4 - register F03 port as pass-through serio

From: Dmitry Torokhov
Date: Wed Jun 07 2017 - 12:59:59 EST


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@xxxxxxxxx>
> > Suggested-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> > ---
>
> Thanks for the extensive commit message :)
>
> Acked-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>

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