History log of /haiku/src/add-ons/kernel/bus_managers/ps2/ps2_alps.cpp
Revision Date Author Comments
# 5e596efe 15-Jul-2022 Augustin Cavalier <waddlesplash@gmail.com>

Refactor touchpad movement generation by migrating MovementMaker to userland.

This considerably overhauls touchpad event generation, simplifying and
cleaning it up considerably:

* Return the touchpad specifications through the MS_IS_TOUCHPAD ioctl.

* There is now a dedicated MS_READ_TOUCHPAD ioctl, as touchpads
can either return touchpad_movement structures or mouse_movement
ones depending on what mode they are operating in.

* Event repeating on timeouts is now handled in MovementMaker and
the input_server control thread, so MS_READ_TOUCHPAD takes
a timeout value. This means we can drop all the EventProducers.

* Use the real floating-point math functions in MovementMaker now
that we are running in userland.

* Drop unused structures, constants, headers, and other things
related to touchpad support.

Change-Id: I28cdb28e4100393a9338a8ebb865573cec13fc1e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5455
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# a3d84aba 18-Jun-2022 PulkoMandy <pulkomandy@pulkomandy.tk>

ps2: improve tracing

Change-Id: I3991e1974ac4af2ba00d692284bfcf00e5b4cc84
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5386
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# fdbbdccc 04-Sep-2021 Adrien Destugues <pulkomandy@pulkomandy.tk>

ps2: allow more selective tracing

In some cases, we don't need the full tracking of every byte received at
the PS2 level, but higher level traces from specific devices will be
enough.

Change-Id: I31984e6b7784b5d033b457f43f3793f772213f4a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4423
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 177f5fac 23-May-2018 Jérôme Duval <jerome.duval@gmail.com>

kernel drivers: have timer hooks return B_HANDLED_INTERRUPT.

* 0 means B_UNHANDLED_INTERRUPT.
* uses int32 as return type.


# ebdb22de 10-May-2018 Zoltán Mizsei <zmizsei@extrowerk.com>

Fix ps2 debug build on x86_64

Change-Id: I579656b6b0619b44aa4a02c87720762cb5dd1415


# f0d09d49 04-Oct-2013 Jérôme Duval <jerome.duval@gmail.com>

ps2: rename a constant also used in pads


# 4c78b73b 22-Sep-2013 Jérôme Duval <jerome.duval@gmail.com>

ps2: added initial support for elantech pads.

* also added a license to ps2_alps.h
* added ps2_dev_sliced_command()
* moved some ps2 commands definitions to ps2_defs.h


# 777178a5 31-Jan-2013 Michael Kanis <mks@skweez.net>

Call UpdateButtons on mouse_movement data for ALPS device

This fixes problem with B_MOUSE_DOWN messages produced by Thinkpad
TrackPoint buttons. Those messages have 'clicks' parameter always
equal to zero. Solution was suggested by korli. Thanks!

Fixes #8978

Signed-off-by: Siarzhuk Zharski <zharik@gmx.li>


# 9b35c5d3 06-Apr-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Generate helper events for ALPS touchpads. This is needed for tap drag and edge motion. This emulates the synaptics touchpad somehow. For example, we need more events to decide if a tap is a
simple click or becomes a tap drag. ALPS does not send these events.
- Enable ALPS.
- Force const edge motion speed. Synaptics sends events with a certain frequency ALPS don't. Even worse ALPS stops sending events durring a edge motion when you don't move your finger. Current
speed is 200 pixel/s. In theory synaptics has different event frequency modes which would result in a different edge motion speed in the previous approach. Please check if synaptics works/speed is correct. Will try to get a synaptics laptop for testing...
- fix class variable names.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c152c70b 30-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- ALPS and synaptics are sharing the same code to generate mouse events now. The movement generation is calibrated on the synaptics touchpad, though.
ALPS movements are fine now, hope the synaptics is still working. Please test! There are still some leftovers form switching from a c struct to a c++
class will fix that later.
- Support ALPS devices with passthrough.
- ALPS is still disabled because tap and edge motion is not working yet. The
problem is that synaptics generates more helper events which makes this a lot
easier to implement. My plan is to emulate this events to imitate the synatics touchpad.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41140 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e637ccf5 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Reapply the ps2 cpp patch. Thanks Axel.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41134 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79bdca06 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert r41129 to get history back.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 278a2b8a 27-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Making the ps2 busmanager c++.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0d09d4925c304099c45c2404da7945b72ce812b 04-Oct-2013 Jérôme Duval <jerome.duval@gmail.com>

ps2: rename a constant also used in pads


# 4c78b73b8a5411d19320e31510654e42815178db 22-Sep-2013 Jérôme Duval <jerome.duval@gmail.com>

ps2: added initial support for elantech pads.

* also added a license to ps2_alps.h
* added ps2_dev_sliced_command()
* moved some ps2 commands definitions to ps2_defs.h


# 777178a56fea932075d8f19140cb3b390679d659 31-Jan-2013 Michael Kanis <mks@skweez.net>

Call UpdateButtons on mouse_movement data for ALPS device

This fixes problem with B_MOUSE_DOWN messages produced by Thinkpad
TrackPoint buttons. Those messages have 'clicks' parameter always
equal to zero. Solution was suggested by korli. Thanks!

Fixes #8978

Signed-off-by: Siarzhuk Zharski <zharik@gmx.li>


# 9b35c5d38ddff53d71b9f6b0644704b87c5ad9bb 06-Apr-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- Generate helper events for ALPS touchpads. This is needed for tap drag and edge motion. This emulates the synaptics touchpad somehow. For example, we need more events to decide if a tap is a
simple click or becomes a tap drag. ALPS does not send these events.
- Enable ALPS.
- Force const edge motion speed. Synaptics sends events with a certain frequency ALPS don't. Even worse ALPS stops sending events durring a edge motion when you don't move your finger. Current
speed is 200 pixel/s. In theory synaptics has different event frequency modes which would result in a different edge motion speed in the previous approach. Please check if synaptics works/speed is correct. Will try to get a synaptics laptop for testing...
- fix class variable names.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41190 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c152c70b467536ee3e54c43674f70e1f849c4532 30-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

- ALPS and synaptics are sharing the same code to generate mouse events now. The movement generation is calibrated on the synaptics touchpad, though.
ALPS movements are fine now, hope the synaptics is still working. Please test! There are still some leftovers form switching from a c struct to a c++
class will fix that later.
- Support ALPS devices with passthrough.
- ALPS is still disabled because tap and edge motion is not working yet. The
problem is that synaptics generates more helper events which makes this a lot
easier to implement. My plan is to emulate this events to imitate the synatics touchpad.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41140 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e637ccf5c1c22c87fa0cb695a2d62d6ee1d92308 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Reapply the ps2 cpp patch. Thanks Axel.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41134 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79bdca06506e69ebd8d9a1eecc5a246b21286472 28-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert r41129 to get history back.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 278a2b8aaa75b3252ca8de1eef36ca6afc836ac1 27-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Making the ps2 busmanager c++.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41129 a95241bf-73f2-0310-859d-f6bbb57e9c96