çå: çå: çå: çå: [PATCH] input: alps-fix the issue alps cs19 trackstick do not work.

From: Xiaoxiao Liu
Date: Sun Jun 16 2019 - 21:34:18 EST


Hi Pali,

Since design architecture change of CS19, input device connection has been changed to below architecture,
Touchpad has been moved to I2C connection.

kernel/host <--PS/2--> EC <--PS/2--> external PS/2 mouse
| |
| <--PS/2--> trackstick
|
<--I2C--> Touchpad

In the past TrackPoint does not show in the device list because of TrackPoint was hidden device of Touchpad.
But from CS19, TrackPoint is directly connecting with PS2 port,
3 bytes packet does not need to take affect by other vendors Touchpad format.
So alps.c is no need for CS19 device.

Best Regards
Shona
-----éäåä-----
åää: Pali RohÃr <pali.rohar@xxxxxxxxx>
åéæé: Wednesday, June 12, 2019 1:39 AM
æää: dmitry.torokhov@xxxxxxxxx
æé: Hui Wang <hui.wang@xxxxxxxxxxxxx>; å ææ Xiaoxiao Liu <xiaoxiao.liu-1@xxxxxxxxxxx>; XiaoXiao Liu <sliuuxiaonxiao@xxxxxxxxx>; peter.hutterer@xxxxxxxxx; linux-input@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; æ æå Xiaojian Cao <xiaojian.cao@xxxxxxxxxxx>; zhangfp1@xxxxxxxxxx; æè çæ Naoki Saito <naoki.saito@xxxxxxxxxxxxxx>; åç èå Hideo Kawase <hideo.kawase@xxxxxxxxxxxxxx>
äé: Re: çå: çå: çå: [PATCH] input: alps-fix the issue alps cs19 trackstick do not work.

On Tuesday 11 June 2019 10:32:28 dmitry.torokhov@xxxxxxxxx wrote:
> On Tue, Jun 11, 2019 at 07:17:07PM +0200, Pali RohÃr wrote:
> > On Tuesday 11 June 2019 10:07:07 dmitry.torokhov@xxxxxxxxx wrote:
> > > On Tue, Jun 11, 2019 at 09:23:33AM +0200, Pali RohÃr wrote:
> > > > On Tuesday 11 June 2019 12:32:33 Hui Wang wrote:
> > > > > On 2019/6/11 äå11:23, Hui Wang wrote:
> > > > > > On 2019/6/11 äå11:05, Xiaoxiao Liu wrote:
> > > > > > > Hi Pali,
> > > > > > >
> > > > > > > I discussed with our FW team about this problem.
> > > > > > > We think the V8 method means a touchpad feature and does
> > > > > > > not fit the CS19 trackpoint device.
> > > > > > > CS19 TrackPoint needn't use any Absolute (Raw) mode and
> > > > > > > is usually use standard mouse data.
> > > > > > > CS19 TrackPoint device is a completely different device
> > > > > > > with DualPoint device of Dell/HP.
> > > > > > > CS19 TrackPoint device is independent of Touchpad.
> > > > > > > (Touchpad is connecting by I2C, TrackPoint is directly
> > > > > > > connecting with PS2 port.) And it has completely another FW.
> > > > > > >
> > > > > > > So we think it is better to use the mouse mode for CS19 trackpoint.
> > > > > >
> > > > > > Maybe here is some mis-understanding, the mouse mode here
> > > > > > doesn't mean we use psmouse-base.c for cs19 (bare ps/2
> > > > > > mouse), we plan to use trackpoint.c to drive this HW, so
> > > > > > this trackpoint has all features a trackpoint should have.
> > > > > >
> > > > > And I sent a patch one month ago to let the the trackpoint.c
> > > > > to drive this
> > > > > HW: https://www.spinics.net/lists/linux-input/msg61341.html,
> > > > > maybe that patch is reference.
> > > >
> > > > So instead of creating blacklist, you should check for
> > > > TP_VARIANT_ALPS in alps.c and disallow its usage.
> > > >
> > > > Or maybe better, move trackpoint.c detect code before alsp.c
> > > > detect code in psmouse-base. And no changes in alps.c are needed.
> > >
> > > I'd be very cautions of moving around the protocol detection. It
> > > is very fragile, so if we can detect trackpoint-only case in
> > > alps.c and skip on to trackpoint I would prefer it.
> >
> > The main problem is that proposed trackpoint-only check in alps.c is
> > basically what trackpoint.c is doing for checking if device is
> > trackpoint (via function trackpoint_start_protocol()).
> >
> > So I'm not sure now what is the best solution...
>
> Unfortunately currently trackpoint is being probed only after we tried
> Elan, Genius, and Logitech PS2++ protocols, and I am not sure if
> moving trackpoint around will disturb them or not.
>
> I do not think there is much code duplication by pulling limited
> version of trackpoint detection code into alps.c and then have it bail
> out when it sees trackpoint-only device so trackpoint.c can handle it properly.

Ok. Seems that it is the best solution.

The last question is, should be use ALPS or Trackpoint protocol? Because it looks like that device can be configured to one or other.

What are pros and cons of these two protocols?

--
Pali RohÃr
pali.rohar@xxxxxxxxx