Thread (20 messages) 20 messages, 5 authors, 2019-06-18

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

From: "dmitry.torokhov@gmail.com" <dmitry.torokhov@gmail.com>
Date: 2019-06-11 17:45:12
Also in: lkml

On Tue, Jun 11, 2019 at 07:38:56PM +0200, Pali Rohár wrote:
On Tuesday 11 June 2019 10:32:28 dmitry.torokhov@gmail.com wrote:
quoted
On Tue, Jun 11, 2019 at 07:17:07PM +0200, Pali Rohár wrote:
quoted
On Tuesday 11 June 2019 10:07:07 dmitry.torokhov@gmail.com wrote:
quoted
On Tue, Jun 11, 2019 at 09:23:33AM +0200, Pali Rohár wrote:
quoted
On Tuesday 11 June 2019 12:32:33 Hui Wang wrote:
quoted
On 2019/6/11 上午11:23, Hui Wang wrote:
quoted
On 2019/6/11 上午11:05, Xiaoxiao Liu wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help