Re: ALPS touchpad ot correctly recognized: GlidePoint vs DualPoint

4 messages, 2 authors, 2018-02-11 · open the first message on its own page

Re: ALPS touchpad ot correctly recognized: GlidePoint vs DualPoint

From: Pali Rohár <hidden>
Date: 2018-02-04 20:21:21

On Sunday 04 February 2018 20:39:06 Juanito wrote:
On 02/04/2018 07:16 PM, Pali Rohár wrote:
quoted
On Monday 11 September 2017 13:26:30 Juanito wrote:
quoted
Hi Masaki Ota,

Thanks!

On 11.09.2017 04:38, Masaki Ota wrote:
quoted
Hi, Juanito,

In my information, ALPS Touchpad is used on Thinkpad E series and L series.
I don't know the device that is ALPS Touchpad + other vendor TrackStick.
But Lenovo might use ALPS Touchpad on such a combination.
Well, that is probably my fault, as it is not the original touchpad that
was delievered with the laptop. I bought the touchpad (that included
the three buttons) separately because I didn't like the clickpad that
came with my laptop.
Hi Juanito,
Hi Pali,
quoted
if you are still want to play with your touchpad hardware, I have a good
news for your.
Yeah! I'd love to get it to work! It's just I've been "working" on some
other projects and my last kernel builds didn't work at all so I gave up
and never got back to it.

Thank you very much for that!
quoted
It looks like that at least ALPS rushmore touchpads allow to receive RAW
PS/2 packets from trackstick to host kernel, without modifying them by
touchpad. Plus I was able to tell ALPS touchpad to start "mixing" those
RAW trackstick PS/2 packets with native touchpad packets.

On my configuration trackstick in RAW PS/2 mode by default talks with
standard bare 3 byte PS/2 protocol and touchpad in 6 byte ALPS protocol.
alps.c/psmouse.ko is already able to process and parse such mixed
packets. And trackstick can be switched to some extended 4 byte
protocol...

All this happen when passthrough mode is enabled.

From my understanding it seems that in normal mode, touchpad and
trackstick communicate with that 4 byte protocol and touchpad converts
it into 6 byte ALPS protocol and then send to kernel.

On thinkpads trackstick communicate with TPPS/2 protcol and above 4
byte. So in my opinion ALPS touchpad by default cannot understand it.
But you should be able to enter passthrough mode and then you would
receive that TPPS/2 in alps kernel code.
I don't really understand what you mean. Do I "just" have to set it to
passthrough mode? How exactly can I do that?
Look at function alps_passthrough_mode_v3(). And try to call it after
touchpad is initialized.

You can also look which alps_command_mode_write_reg() functions are
called for your touchpad and maybe try to figure out what those
registers can enabled/disable.

On http://www.cirque.com/gen4-dev-resources you can find document named
GP-AN- 130823 INTERFACING TO GEN4 OVER I2C (PDF) which contains
some description of those registers (in section 7).

Register C2C8, bit 0 has description "PS2AuxControl.CommandPassThruEnabled"

If trackstick is not detected, it seems you can "force" enable it by
setting bit 7 "PS2AuxControl.AuxDevicePresent" in same register.
Again, thank you very much!
Have you tried to read from that register which Masaki Ota talked in
previous emails?

-- 
Pali Rohár
pali.rohar@gmail.com

Re: ALPS touchpad ot correctly recognized: GlidePoint vs DualPoint

From: Juanito <hidden>
Date: 2018-02-05 07:48:35

On 02/04/2018 09:21 PM, Pali Rohár wrote:
On Sunday 04 February 2018 20:39:06 Juanito wrote:
quoted
On 02/04/2018 07:16 PM, Pali Rohár wrote:
quoted
On Monday 11 September 2017 13:26:30 Juanito wrote:
quoted
Hi Masaki Ota,

Thanks!

On 11.09.2017 04:38, Masaki Ota wrote:
quoted
Hi, Juanito,

In my information, ALPS Touchpad is used on Thinkpad E series and L series.
I don't know the device that is ALPS Touchpad + other vendor TrackStick.
But Lenovo might use ALPS Touchpad on such a combination.
Well, that is probably my fault, as it is not the original touchpad that
was delievered with the laptop. I bought the touchpad (that included
the three buttons) separately because I didn't like the clickpad that
came with my laptop.
Hi Juanito,
Hi Pali,
quoted
if you are still want to play with your touchpad hardware, I have a good
news for your.
Yeah! I'd love to get it to work! It's just I've been "working" on some
other projects and my last kernel builds didn't work at all so I gave up
and never got back to it.

Thank you very much for that!
quoted
It looks like that at least ALPS rushmore touchpads allow to receive RAW
PS/2 packets from trackstick to host kernel, without modifying them by
touchpad. Plus I was able to tell ALPS touchpad to start "mixing" those
RAW trackstick PS/2 packets with native touchpad packets.

On my configuration trackstick in RAW PS/2 mode by default talks with
standard bare 3 byte PS/2 protocol and touchpad in 6 byte ALPS protocol.
alps.c/psmouse.ko is already able to process and parse such mixed
packets. And trackstick can be switched to some extended 4 byte
protocol...

All this happen when passthrough mode is enabled.

From my understanding it seems that in normal mode, touchpad and
trackstick communicate with that 4 byte protocol and touchpad converts
it into 6 byte ALPS protocol and then send to kernel.

On thinkpads trackstick communicate with TPPS/2 protcol and above 4
byte. So in my opinion ALPS touchpad by default cannot understand it.
But you should be able to enter passthrough mode and then you would
receive that TPPS/2 in alps kernel code.
I don't really understand what you mean. Do I "just" have to set it to
passthrough mode? How exactly can I do that?
Look at function alps_passthrough_mode_v3(). And try to call it after
touchpad is initialized.
Cool, I'll give this a try!
You can also look which alps_command_mode_write_reg() functions are
called for your touchpad and maybe try to figure out what those the
registers can enabled/disable.

On http://www.cirque.com/gen4-dev-resources you can find document named
GP-AN- 130823 INTERFACING TO GEN4 OVER I2C (PDF) which contains
some description of those registers (in section 7).

Register C2C8, bit 0 has description "PS2AuxControl.CommandPassThruEnabled"

If trackstick is not detected, it seems you can "force" enable it by
setting bit 7 "PS2AuxControl.AuxDevicePresent" in same register.
quoted
Again, thank you very much!
Have you tried to read from that register which Masaki Ota talked in
previous emails?
I tried but I just didn't manage to get it to work, at all and gave up
(I really am a newbie in this whole kernel world). Maybe a fresh start
helps here.

Cheers,
Juanito

Re: ALPS touchpad ot correctly recognized: GlidePoint vs DualPoint

From: Juanito <hidden>
Date: 2018-02-05 11:20:04


On 02/05/2018 08:48 AM, Juanito wrote:
On 02/04/2018 09:21 PM, Pali Rohár wrote:
quoted
On Sunday 04 February 2018 20:39:06 Juanito wrote:
quoted
On 02/04/2018 07:16 PM, Pali Rohár wrote:
quoted
On Monday 11 September 2017 13:26:30 Juanito wrote:
quoted
Hi Masaki Ota,

Thanks!

On 11.09.2017 04:38, Masaki Ota wrote:
quoted
Hi, Juanito,

In my information, ALPS Touchpad is used on Thinkpad E series and L series.
I don't know the device that is ALPS Touchpad + other vendor TrackStick.
But Lenovo might use ALPS Touchpad on such a combination.
Well, that is probably my fault, as it is not the original touchpad that
was delievered with the laptop. I bought the touchpad (that included
the three buttons) separately because I didn't like the clickpad that
came with my laptop.
Hi Juanito,
Hi Pali,
quoted
if you are still want to play with your touchpad hardware, I have a good
news for your.
Yeah! I'd love to get it to work! It's just I've been "working" on some
other projects and my last kernel builds didn't work at all so I gave up
and never got back to it.

Thank you very much for that!
quoted
It looks like that at least ALPS rushmore touchpads allow to receive RAW
PS/2 packets from trackstick to host kernel, without modifying them by
touchpad. Plus I was able to tell ALPS touchpad to start "mixing" those
RAW trackstick PS/2 packets with native touchpad packets.

On my configuration trackstick in RAW PS/2 mode by default talks with
standard bare 3 byte PS/2 protocol and touchpad in 6 byte ALPS protocol.
alps.c/psmouse.ko is already able to process and parse such mixed
packets. And trackstick can be switched to some extended 4 byte
protocol...

All this happen when passthrough mode is enabled.

From my understanding it seems that in normal mode, touchpad and
trackstick communicate with that 4 byte protocol and touchpad converts
it into 6 byte ALPS protocol and then send to kernel.

On thinkpads trackstick communicate with TPPS/2 protcol and above 4
byte. So in my opinion ALPS touchpad by default cannot understand it.
But you should be able to enter passthrough mode and then you would
receive that TPPS/2 in alps kernel code.
I don't really understand what you mean. Do I "just" have to set it to
passthrough mode? How exactly can I do that?
Look at function alps_passthrough_mode_v3(). And try to call it after
touchpad is initialized.
Cool, I'll give this a try!
quoted
You can also look which alps_command_mode_write_reg() functions are
called for your touchpad and maybe try to figure out what those the
registers can enabled/disable.

On http://www.cirque.com/gen4-dev-resources you can find document named
GP-AN- 130823 INTERFACING TO GEN4 OVER I2C (PDF) which contains
some description of those registers (in section 7).

Register C2C8, bit 0 has description "PS2AuxControl.CommandPassThruEnabled"

If trackstick is not detected, it seems you can "force" enable it by
setting bit 7 "PS2AuxControl.AuxDevicePresent" in same register.
quoted
Again, thank you very much!
Have you tried to read from that register which Masaki Ota talked in
previous emails?
I tried but I just didn't manage to get it to work, at all and gave up
(I really am a newbie in this whole kernel world). Maybe a fresh start
helps here.
Oh, oh! Currently, my touchpad is just being recognized as a PS/2
Generic Mouse.

On both debian stretch kernel (4.9.0-5-amd64) and on a 4.15.0+ compiled
by me.

I'll try to see if I can find out why this is happening.

Do have any idea why this might be the case (it used to be recognized as
ALPS)?

Cheers,
Juanito

Re: ALPS touchpad ot correctly recognized: GlidePoint vs DualPoint

From: Pali Rohár <hidden>
Date: 2018-02-11 23:01:48

On Monday 05 February 2018 12:19:48 Juanito wrote:

On 02/05/2018 08:48 AM, Juanito wrote:
quoted
On 02/04/2018 09:21 PM, Pali Rohár wrote:
quoted
On Sunday 04 February 2018 20:39:06 Juanito wrote:
quoted
On 02/04/2018 07:16 PM, Pali Rohár wrote:
quoted
On Monday 11 September 2017 13:26:30 Juanito wrote:
quoted
Hi Masaki Ota,

Thanks!

On 11.09.2017 04:38, Masaki Ota wrote:
quoted
Hi, Juanito,

In my information, ALPS Touchpad is used on Thinkpad E series and L series.
I don't know the device that is ALPS Touchpad + other vendor TrackStick.
But Lenovo might use ALPS Touchpad on such a combination.
Well, that is probably my fault, as it is not the original touchpad that
was delievered with the laptop. I bought the touchpad (that included
the three buttons) separately because I didn't like the clickpad that
came with my laptop.
Hi Juanito,
Hi Pali,
quoted
if you are still want to play with your touchpad hardware, I have a good
news for your.
Yeah! I'd love to get it to work! It's just I've been "working" on some
other projects and my last kernel builds didn't work at all so I gave up
and never got back to it.

Thank you very much for that!
quoted
It looks like that at least ALPS rushmore touchpads allow to receive RAW
PS/2 packets from trackstick to host kernel, without modifying them by
touchpad. Plus I was able to tell ALPS touchpad to start "mixing" those
RAW trackstick PS/2 packets with native touchpad packets.

On my configuration trackstick in RAW PS/2 mode by default talks with
standard bare 3 byte PS/2 protocol and touchpad in 6 byte ALPS protocol.
alps.c/psmouse.ko is already able to process and parse such mixed
packets. And trackstick can be switched to some extended 4 byte
protocol...

All this happen when passthrough mode is enabled.

From my understanding it seems that in normal mode, touchpad and
trackstick communicate with that 4 byte protocol and touchpad converts
it into 6 byte ALPS protocol and then send to kernel.

On thinkpads trackstick communicate with TPPS/2 protcol and above 4
byte. So in my opinion ALPS touchpad by default cannot understand it.
But you should be able to enter passthrough mode and then you would
receive that TPPS/2 in alps kernel code.
I don't really understand what you mean. Do I "just" have to set it to
passthrough mode? How exactly can I do that?
Look at function alps_passthrough_mode_v3(). And try to call it after
touchpad is initialized.
Cool, I'll give this a try!
quoted
You can also look which alps_command_mode_write_reg() functions are
called for your touchpad and maybe try to figure out what those the
registers can enabled/disable.

On http://www.cirque.com/gen4-dev-resources you can find document named
GP-AN- 130823 INTERFACING TO GEN4 OVER I2C (PDF) which contains
some description of those registers (in section 7).

Register C2C8, bit 0 has description "PS2AuxControl.CommandPassThruEnabled"

If trackstick is not detected, it seems you can "force" enable it by
setting bit 7 "PS2AuxControl.AuxDevicePresent" in same register.
quoted
Again, thank you very much!
Have you tried to read from that register which Masaki Ota talked in
previous emails?
I tried but I just didn't manage to get it to work, at all and gave up
(I really am a newbie in this whole kernel world). Maybe a fresh start
helps here.
Oh, oh! Currently, my touchpad is just being recognized as a PS/2
Generic Mouse.

On both debian stretch kernel (4.9.0-5-amd64) and on a 4.15.0+ compiled
by me.
Maybe bug in kernel driver? Can you install older kernel version and
find which worked?
I'll try to see if I can find out why this is happening.
The best way is to enable debug output and look into dmesg log why
alps.c refused to register your touchpad.
Do have any idea why this might be the case (it used to be recognized as
ALPS)?
There were some bugs with ALPS touchpads and IIRC all of them (expect
one) should be fixed in git. So maybe you hit it.

-- 
Pali Rohár
pali.rohar@gmail.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help