History log of /haiku/src/add-ons/kernel/bus_managers/ps2/ps2_dev.cpp
Revision Date Author Comments
# 8a00ea4a 15-Nov-2023 PulkoMandy <pulkomandy@pulkomandy.tk>

ps2_dev: shorter timeout for mouse reset

The keyboard is initialized after the mouse. When there is no mouse,
this timeout delays keyboard initialization noticeably (especially if
there is a mouse port multiplexer with several ports).

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


# fb1d7157 10-Jul-2022 PulkoMandy <pulkomandy@pulkomandy.tk>

ps2: do not publish keyboard device until mouse probing is complete

For mouse probing to work reliably, it's important that we don't
simultaneously send commands to the keyboard as well. This normally
happens because we don't publish the keyboard device until the probing
is complete.

However, if the mouse probing results in the keyboard sending some
replies, this can be detected as a "hot plugin" and leads to publishing
the keyboard device a lot earlier.

To prevent this, disable the "hot plugin" feature until we are done
initializing. This way the keyboard device is published only after we
are done with the probing.

Fixes #17806

Change-Id: Ia6a2b031550c845fa305df5b5f4d513d5c7931d6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5388
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Jérôme Duval <jerome.duval@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>


# 586138b6 03-Nov-2018 Peter Kosyh <p.kosyh@gmail.com>

ps2_reset_mouse: error in checking response logic

Change-Id: Ia4011938cf914b2bc2ba9d5cd595fa0ef66d11dd
Reviewed-on: https://review.haiku-os.org/659
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# b2e0398c 24-Aug-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

ps2_dev encapsulate TRACING code

Avoid doing system_time() calls in a loop.
Is this even needed anymore?


# 9c7aacad 22-Nov-2017 François Revol <revol@free.fr>

Typo


# 044cab8e 09-Apr-2017 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Activate Elantech toucpad probe but fail.

Now we can see who has Elantech touchpad.
Driver is currently in very bad shape on my hw:
* mouse jumps
* mouse clicks maps to wrong button
* keyboard not working properly when enabled
* power button only works in force shutdown mode


# 819b4547 07-Jul-2014 John Scipione <jscipione@gmail.com>

PS/2 bus manager: style fixes only


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

ps2: disable elantech support until it's more functional


# 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


# ef67788f 30-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Ported ISA bus manager and PS/2 driver.


# 7f4deb44 26-Jun-2011 Siarzhuk Zharski <zharik@gmx.li>

* Implemented PS2_CMD_RESEND command handlig;

* Workaround for touchpad reset timeouts on some HP/Compaq KBCs. Looks like such
KBC marks the mouse reset request (xFF) as correctly sent (by xFA answer) but
does not wait enough time for the answer from touchpad. So complete answer
finally contains xFE xAA x00 bytes. The workaround detects this xFE xAA answer
and issues the RESEND (xFE) request to touchpad. This forces touchpad to resend
the last packet of data (xAA x00) that can be processed normally by the host;

* Fix for handling passthrough_command() call. The parent device was disabled at
start of processing command and was not re-enabled back in case any error return.
This fixes the touchpad "pass-through" feature handling on the same HP/Compaq HW.
This KBC has the "pass-through" capability marked ON but cannot handle it as
currently implemented - there is no answer from corresponding port. The parent
device stay in disabled state after this;

* Fix ps2_dev_publish() for handling passthrough devices (parent_dev != NULL)
This workaround postpone the publishing such device until the parent device
finishes it's opening and set the PS2_ENABLED_FALG. It prevent from mixing
the Synaptics multi-command sequences from synaptics_open() and ps2_dev_publish()
routines and failing both initializations;

Fixes #2867 #3594 #4315



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42325 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


# 819b454750bfac97f44c156e7e0fdb9683406ab8 07-Jul-2014 John Scipione <jscipione@gmail.com>

PS/2 bus manager: style fixes only


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

ps2: disable elantech support until it's more functional


# 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


# ef67788fba5d738eeb99768caea7b0e5170893f5 30-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Ported ISA bus manager and PS/2 driver.


# 7f4deb4400434bb3c210a7b0333eddd4800290bf 26-Jun-2011 Siarzhuk Zharski <zharik@gmx.li>

* Implemented PS2_CMD_RESEND command handlig;

* Workaround for touchpad reset timeouts on some HP/Compaq KBCs. Looks like such
KBC marks the mouse reset request (xFF) as correctly sent (by xFA answer) but
does not wait enough time for the answer from touchpad. So complete answer
finally contains xFE xAA x00 bytes. The workaround detects this xFE xAA answer
and issues the RESEND (xFE) request to touchpad. This forces touchpad to resend
the last packet of data (xAA x00) that can be processed normally by the host;

* Fix for handling passthrough_command() call. The parent device was disabled at
start of processing command and was not re-enabled back in case any error return.
This fixes the touchpad "pass-through" feature handling on the same HP/Compaq HW.
This KBC has the "pass-through" capability marked ON but cannot handle it as
currently implemented - there is no answer from corresponding port. The parent
device stay in disabled state after this;

* Fix ps2_dev_publish() for handling passthrough devices (parent_dev != NULL)
This workaround postpone the publishing such device until the parent device
finishes it's opening and set the PS2_ENABLED_FALG. It prevent from mixing
the Synaptics multi-command sequences from synaptics_open() and ps2_dev_publish()
routines and failing both initializations;

Fixes #2867 #3594 #4315



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42325 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