It works OK after reconnect, because the X input subsystem only sees the TouchPad (not the Stick) then. But both pointers work when used, so the TouchPad obviously sends also the Stick events (like a repeater):
This is xinput before reconnect:
"Virtual core pointer" id=0 [XPointer]
Num_buttons is 32
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 0
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 0
"Virtual core keyboard" id=1 [XKeyboard]
Num_keys is 248
Min_keycode is 8
Max_keycode is 255
...
"AlpsPS/2 ALPS DualPoint TouchPad" id=8 [XExtensionPointer]
Type is TOUCHPAD
Num_buttons is 12
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is 0
Max_value is 1023
Resolution is 1
Axis 1 :
Min_value is 0
Max_value is 767
Resolution is 1
"DualPoint Stick" id=10 [XExtensionPointer]
Type is MOUSE
Num_buttons is 5
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 1
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 1
See? Both devices are there, but when used simultaneously, they wreak havoc. So I force reconnect by using Stick and TouchPad at the same time for roughly 2 secs. I get this:
"Virtual core pointer" id=0 [XPointer]
Num_buttons is 32
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 0
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 0
"Virtual core keyboard" id=1 [XKeyboard]
Num_keys is 248
Min_keycode is 8
Max_keycode is 255
...
"PS/2 ALPS DualPoint TouchPad" id=8 [XExtensionPointer]
Type is MOUSE
Num_buttons is 5
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 1
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 1
See? The Stick isn't there. Bot now both the TouchPad and the Stick work, there are no lost syncs any more and I can use them both simultaneously.
I think the problem is the TouchPad works also like a repeater for the Stick and when there is a Stick stand-alone + Stick repeated it causes troubles. If we could turn off TouchPad's repeater mode, I think the whole thing would be stable!
Found out more!!
It works OK after reconnect, because the X input subsystem only sees the TouchPad (not the Stick) then. But both pointers work when used, so the TouchPad obviously sends also the Stick events (like a repeater):
This is xinput before reconnect:
"Virtual core pointer" id=0 [XPointer]
Num_buttons is 32
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 0
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 0
"Virtual core keyboard" id=1 [XKeyboard]
Num_keys is 248
Min_keycode is 8
Max_keycode is 255
...
"AlpsPS/2 ALPS DualPoint TouchPad" id=8 [XExtensionPointer]
Type is TOUCHPAD
Num_buttons is 12
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is 0
Max_value is 1023
Resolution is 1
Axis 1 :
Min_value is 0
Max_value is 767
Resolution is 1
"DualPoint Stick" id=10 [XExtensionPointer]
Type is MOUSE
Num_buttons is 5
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 1
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 1
See? Both devices are there, but when used simultaneously, they wreak havoc. So I force reconnect by using Stick and TouchPad at the same time for roughly 2 secs. I get this:
[ 3296.298172] psmouse.c: issuing reconnect request platform/ i8042/serio1/ input/input19
[ 3297.452170] alps.c: Failed to enable absolute mode
[ 3298.512298] input: PS/2 ALPS DualPoint TouchPad as /devices/
And now xinput looks like this:
"Virtual core pointer" id=0 [XPointer]
Num_buttons is 32
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 0
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 0
"Virtual core keyboard" id=1 [XKeyboard]
Num_keys is 248
Min_keycode is 8
Max_keycode is 255
...
"PS/2 ALPS DualPoint TouchPad" id=8 [XExtensionPointer]
Type is MOUSE
Num_buttons is 5
Num_axes is 2
Mode is Relative
Motion_buffer is 256
Axis 0 :
Min_value is -1
Max_value is -1
Resolution is 1
Axis 1 :
Min_value is -1
Max_value is -1
Resolution is 1
See? The Stick isn't there. Bot now both the TouchPad and the Stick work, there are no lost syncs any more and I can use them both simultaneously.
I think the problem is the TouchPad works also like a repeater for the Stick and when there is a Stick stand-alone + Stick repeated it causes troubles. If we could turn off TouchPad's repeater mode, I think the whole thing would be stable!
What do you think?