On Tue, Jun 11, 2019 at 07:38:56PM +0200, Pali Rohár wrote: > 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? As far as I know the device implements trackpoint protocol, although not complete version. Several manufacturers started making trackponts once IBM/Lenovo patents on the original one expired (I think). The data stream is regular relative PS/2, bit it allows controlling device behavior a bit, such as press-to-select option and device sensitivity. IBM/Lenovo version has many more parameters. Thanks. -- Dmitry