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

From: dmitry.torokhov@xxxxxxxxx
Date: Tue Jun 11 2019 - 13:37:04 EST


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.

Thanks.

--
Dmitry