<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/atkbdc, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>MFC r361715:</title>
<updated>2020-06-15T22:41:28+00:00</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2020-06-15T22:41:28+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3c73d3ecf8597a7b8f2492b40c51aa7591f12584'/>
<id>3c73d3ecf8597a7b8f2492b40c51aa7591f12584</id>
<content type='text'>
[psm] Do not disable trackpoint when hw.psm.elantech.touchpad_off is enabled

PR:		246117
Reported by:	Alexander Sieg &lt;ports@xanderio.de&gt;

MFC r361718:

[psm] Workaround active PS/2 multiplexor hang

which happens on some laptops after returning to legacy multiplexing mode
at initialization stage.

PR:		242542
Reported by:	Felix Palmen &lt;felix@palmen-it.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[psm] Do not disable trackpoint when hw.psm.elantech.touchpad_off is enabled

PR:		246117
Reported by:	Alexander Sieg &lt;ports@xanderio.de&gt;

MFC r361718:

[psm] Workaround active PS/2 multiplexor hang

which happens on some laptops after returning to legacy multiplexing mode
at initialization stage.

PR:		242542
Reported by:	Felix Palmen &lt;felix@palmen-it.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r360353:</title>
<updated>2020-05-03T23:38:21+00:00</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2020-05-03T23:38:21+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a29469b01e0e9e01bdb1bc6624a652e8db0a60cb'/>
<id>a29469b01e0e9e01bdb1bc6624a652e8db0a60cb</id>
<content type='text'>
psm(4): Fix wrong key-release event occuring after trackpoint use.

Some models of laptops e.g. "X1 Carbon 3rd Gen Thinkpad" have LRM buttons
wired as so called "Synaptic touchpads extended buttons" rather thah real
trackpoint buttons. Handle this case with merging of events from both
sources.

PR:		245877
Reported by:	Raichoo &lt;raichoo@googlemail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
psm(4): Fix wrong key-release event occuring after trackpoint use.

Some models of laptops e.g. "X1 Carbon 3rd Gen Thinkpad" have LRM buttons
wired as so called "Synaptic touchpads extended buttons" rather thah real
trackpoint buttons. Handle this case with merging of events from both
sources.

PR:		245877
Reported by:	Raichoo &lt;raichoo@googlemail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r348873: Enable touch and trackpads by default</title>
<updated>2020-04-15T19:47:19+00:00</updated>
<author>
<name>Niclas Zeising</name>
<email>zeising@FreeBSD.org</email>
</author>
<published>2020-04-15T19:47:19+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=abe9f1b75631c079c9b41a1f21a717c93701198a'/>
<id>abe9f1b75631c079c9b41a1f21a717c93701198a</id>
<content type='text'>
Enable synaptics and elantech touchpads, as well as IBM/Lenovo TrackPoints
by default, instead of having users find and toggle a loader tunable.
This makes things like two finger scroll and other modern features work out
of the box with X.  By enabling these settings by default, we get a better
desktop experience in X, since xserver and evdev can make use of the more
advanced synaptics and elantech features.

Approved by:	imp
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable synaptics and elantech touchpads, as well as IBM/Lenovo TrackPoints
by default, instead of having users find and toggle a loader tunable.
This makes things like two finger scroll and other modern features work out
of the box with X.  By enabling these settings by default, we get a better
desktop experience in X, since xserver and evdev can make use of the more
advanced synaptics and elantech features.

Approved by:	imp
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r357509-r357510: small psm cleanup</title>
<updated>2020-02-07T21:55:45+00:00</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2020-02-07T21:55:45+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f8737fa694667cdcb1ba4e60776ba7b60bf53ac1'/>
<id>f8737fa694667cdcb1ba4e60776ba7b60bf53ac1</id>
<content type='text'>
r357509:
psm: release resources on attach failure

In exactly 1/3 cases we'll release resources on failure; touch up the other
two to do so as well.

r357510:
psm: use make_dev_s instead of make_dev

This most importantly reduces duplication, but it also removes any potential
race with usage of dev-&gt;si_drv1 since it's now set prior to the device being
constructed enough to be accessible.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
r357509:
psm: release resources on attach failure

In exactly 1/3 cases we'll release resources on failure; touch up the other
two to do so as well.

r357510:
psm: use make_dev_s instead of make_dev

This most importantly reduces duplication, but it also removes any potential
race with usage of dev-&gt;si_drv1 since it's now set prior to the device being
constructed enough to be accessible.
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r355796-r355797, r355799: kbd: defaults for get_fkeystr/diag</title>
<updated>2019-12-22T17:15:48+00:00</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2019-12-22T17:15:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3869cc6d4906aca2e02ed1b8cff0ace034c72c25'/>
<id>3869cc6d4906aca2e02ed1b8cff0ace034c72c25</id>
<content type='text'>
The genkbd version of these remains exposed for stable branches, but
keyboard drivers that just want to use the defaults can simply not provide
their own. There shouldn't be any unset in the wild.

r355796:
kbd: provide default implementations of get_fkeystr/diag

Most keyboard drivers are using the genkbd implementations as it is;
formally use them for any that aren't set.

r355797:
chrome_kb: remove default get_fkeystr/diag implementations

This file was missed in r355796, but no harm would have come from this.

r355799:
kbd: patch linker set methods, too

This is needed after r355796. Some double-registration of kbd drivers needs
to be sorted out, then this sysinit will simply add these drivers into the
normal list and kill off any other bits in the driver that are aware of the
linker set, for simplicity.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The genkbd version of these remains exposed for stable branches, but
keyboard drivers that just want to use the defaults can simply not provide
their own. There shouldn't be any unset in the wild.

r355796:
kbd: provide default implementations of get_fkeystr/diag

Most keyboard drivers are using the genkbd implementations as it is;
formally use them for any that aren't set.

r355797:
chrome_kb: remove default get_fkeystr/diag implementations

This file was missed in r355796, but no harm would have come from this.

r355799:
kbd: patch linker set methods, too

This is needed after r355796. Some double-registration of kbd drivers needs
to be sorted out, then this sysinit will simply add these drivers into the
normal list and kill off any other bits in the driver that are aware of the
linker set, for simplicity.
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r355794: keyboard switch definitions: standardize on c99 initializers</title>
<updated>2019-12-22T16:04:12+00:00</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2019-12-22T16:04:12+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=93d368d89c617f5f2010eedb6da9593930fc3694'/>
<id>93d368d89c617f5f2010eedb6da9593930fc3694</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r349098:</title>
<updated>2019-07-05T16:43:41+00:00</updated>
<author>
<name>Philip Paeps</name>
<email>philip@FreeBSD.org</email>
</author>
<published>2019-07-05T16:43:41+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=259278f605164c272dc1b6a533ea6b7d75a6113d'/>
<id>259278f605164c272dc1b6a533ea6b7d75a6113d</id>
<content type='text'>
  Add macOS-like three finger drag trackpad gesture to psm(4)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Add macOS-like three finger drag trackpad gesture to psm(4)
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r346455-r346458, r348520, r348529, r348817, r348818</title>
<updated>2019-06-29T12:49:52+00:00</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2019-06-29T12:49:52+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=5d50435f79d5d8860483e7bfa8912678fca052a1'/>
<id>5d50435f79d5d8860483e7bfa8912678fca052a1</id>
<content type='text'>
r346455:
psm(4): Add support for 4 and 5 finger touches in synaptics driver

While 4-th and 5-th finger positions are not exported through PS/2
interface, total number of touches is reported by MT trackpads.

r346456:
psm(4): do not process gestures when palm is present

Ignoring of gesture processing when the palm is detected helps to reduce
some of the erratic pointer behavior.

This fixes regression introduced in r317814

Reported by:	Ben LeMasurier &lt;ben@crypt.ly&gt;

r346457:
psm(4): respect tap_disabled configuration with enabled Extended support

This fixes a bug where, even when hw.psm.tap_enabled=0, touchpad taps
were processed.
tap_enabled has three states: unconfigured, disabled, and enabled (-1, 0, 1).
To respect PR kern/139272, taps are ignored only when explicity disabled.

Submitted by:	Ben LeMasurier &lt;ben@crypt.ly&gt; (initial version)

r346458:
psm(4): give names to synaptics commands

Submitted by:	Ben LeMasurier &lt;ben@crypt.ly&gt;

r348520:
psm(4): Add Elantech touchpad IC type 15 found on Thinkpad L480 laptops

PR:		238291
Submitted by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;

r348529:
psm(4): Add natural scrolling support to sysmouse protocol

This change enables natural scrolling with two finger scroll enabled
and when user is using a trackpad (mouse and trackpoint are not affected).
Depending on trackpad model it can be activated with setting of
hw.psm.synaptics.natural_scroll or hw.psm.elantech.natural_scroll sysctl
values to 1.

Evdev protocol is not affected by this change too. Tune userland client
e.g. libinput to enable natural scrolling in that case.

Submitted by:	nyan_myuji.xyz
Reviewed by:	wulf
Differential Revision:	https://reviews.freebsd.org/D20447

r348817:
psm(4): Fix Elantech trackpoint support.

Sign bits for X and Y motion data were taken from wrong places.

PR:		238291
Reported by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;
Tested by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;

r348818:
psm(4): Add extra sanity checks to Elantech trackpoint packet parser.

Add strict checks for unused bit states in Elantech trackpoint packet
parser to filter out spurious events produces by some hardware which
are detected as trackpoint packets. See comment on r328191 for example.

Tested by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
r346455:
psm(4): Add support for 4 and 5 finger touches in synaptics driver

While 4-th and 5-th finger positions are not exported through PS/2
interface, total number of touches is reported by MT trackpads.

r346456:
psm(4): do not process gestures when palm is present

Ignoring of gesture processing when the palm is detected helps to reduce
some of the erratic pointer behavior.

This fixes regression introduced in r317814

Reported by:	Ben LeMasurier &lt;ben@crypt.ly&gt;

r346457:
psm(4): respect tap_disabled configuration with enabled Extended support

This fixes a bug where, even when hw.psm.tap_enabled=0, touchpad taps
were processed.
tap_enabled has three states: unconfigured, disabled, and enabled (-1, 0, 1).
To respect PR kern/139272, taps are ignored only when explicity disabled.

Submitted by:	Ben LeMasurier &lt;ben@crypt.ly&gt; (initial version)

r346458:
psm(4): give names to synaptics commands

Submitted by:	Ben LeMasurier &lt;ben@crypt.ly&gt;

r348520:
psm(4): Add Elantech touchpad IC type 15 found on Thinkpad L480 laptops

PR:		238291
Submitted by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;

r348529:
psm(4): Add natural scrolling support to sysmouse protocol

This change enables natural scrolling with two finger scroll enabled
and when user is using a trackpad (mouse and trackpoint are not affected).
Depending on trackpad model it can be activated with setting of
hw.psm.synaptics.natural_scroll or hw.psm.elantech.natural_scroll sysctl
values to 1.

Evdev protocol is not affected by this change too. Tune userland client
e.g. libinput to enable natural scrolling in that case.

Submitted by:	nyan_myuji.xyz
Reviewed by:	wulf
Differential Revision:	https://reviews.freebsd.org/D20447

r348817:
psm(4): Fix Elantech trackpoint support.

Sign bits for X and Y motion data were taken from wrong places.

PR:		238291
Reported by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;
Tested by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;

r348818:
psm(4): Add extra sanity checks to Elantech trackpoint packet parser.

Add strict checks for unused bit states in Elantech trackpoint packet
parser to filter out spurious events produces by some hardware which
are detected as trackpoint packets. See comment on r328191 for example.

Tested by:	Andrey Kosachenko &lt;andrey.kosachenko@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r343163:</title>
<updated>2019-02-15T20:45:12+00:00</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2019-02-15T20:45:12+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e36c7881a9a81bd1b684c75f044e48bb7c145180'/>
<id>e36c7881a9a81bd1b684c75f044e48bb7c145180</id>
<content type='text'>
psm(4): detect Lenovo top-button clickpads

libinput has special handling for Lenovo ThinkPad *40 series, where it
treats clicks on the top button area as if they came from the TrackPoint:
https://wayland.freedesktop.org/libinput/doc/latest/t440-support.html

Detect these devices and set the corresponding evdev property.

Submitted by:		Greg V &lt;greg@unrelenting.technology&gt;
Differential Revision:	https://reviews.freebsd.org/D18676
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
psm(4): detect Lenovo top-button clickpads

libinput has special handling for Lenovo ThinkPad *40 series, where it
treats clicks on the top button area as if they came from the TrackPoint:
https://wayland.freedesktop.org/libinput/doc/latest/t440-support.html

Detect these devices and set the corresponding evdev property.

Submitted by:		Greg V &lt;greg@unrelenting.technology&gt;
Differential Revision:	https://reviews.freebsd.org/D18676
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r340912,r340913:</title>
<updated>2019-01-18T21:11:02+00:00</updated>
<author>
<name>Vladimir Kondratyev</name>
<email>wulf@FreeBSD.org</email>
</author>
<published>2019-01-18T21:11:02+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ebe71cb6ef1831199ada53a0c8a2462a5f49193e'/>
<id>ebe71cb6ef1831199ada53a0c8a2462a5f49193e</id>
<content type='text'>
psm(4): Revert r328640 and add minimal support for active AUX port
        multiplexers

Active PS/2 multiplexing is a method for attaching up to four PS/2
pointing devices to a computer. Enabling of multiplexed mode allows
commands to be directed to individual devices using routing prefixes.
Multiplexed mode reports input with each byte tagged to identify
its source. This method differs from one currently supported by psm(4)
where so called guest device (trackpoint) is attached to special
interface located on the host device (touchpad) and latter performs
guest protocol conversion to special encapsulation packet format.

At present time active PS/2 multiplexing is used in some models of
HP laptops e.g. EliteBook 8560w, 9470m. Enabling of absolute operation
mode on such touchpads is connected with following problems:
1. Touchpad's port priority is lower than trackpoint's. That blocks
   information queries thus prevents touchpad detection and configuration.
2. Touchpad and trackpoint have different protocol packet sizes and
   sync bytes.

As PS/2 usage is on decline only minimal possible set of changes to
support Synaptics touchpad and generic mouses is implemented.
Active multiplexing mode is enabled only at probe stage to scan through
attached PS/2 devices to query and configure Synaptics touchpad.
After touchpad has been configured, mux is switched back to legacy
(hidden multiplexing) mode to perform normal interrupt-driven input
data processing. Overflow bit values rather than tags are used to
separate packets produced by different devices. Switching back to
legacy mode allows to avoid psm(4) and atkbd(4) rework to support
4 instances of mouse driver.

Note: While in hidden multiplexing mode KBC does some editing of the
packet stream. It remembers the button bits from the last packet
received from each device, and replaces the button bits of every
packet with the logical OR of all devices’ most recent button bits.
This sort of button crosstalk results in spurious button events
which are inhibitted with various tricks. E.g. trackpoint middle
button events are suppressed while trackpad surface is touched and
touchpad left and right button events are suppressed if corresponding
trackpoint buttons are pressed.

PR:		231058
Reported by:	Michael Figiel &lt;mifigiel at gmail.com&gt;
Tested by:	Michael Figiel &lt;mifigiel at gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
psm(4): Revert r328640 and add minimal support for active AUX port
        multiplexers

Active PS/2 multiplexing is a method for attaching up to four PS/2
pointing devices to a computer. Enabling of multiplexed mode allows
commands to be directed to individual devices using routing prefixes.
Multiplexed mode reports input with each byte tagged to identify
its source. This method differs from one currently supported by psm(4)
where so called guest device (trackpoint) is attached to special
interface located on the host device (touchpad) and latter performs
guest protocol conversion to special encapsulation packet format.

At present time active PS/2 multiplexing is used in some models of
HP laptops e.g. EliteBook 8560w, 9470m. Enabling of absolute operation
mode on such touchpads is connected with following problems:
1. Touchpad's port priority is lower than trackpoint's. That blocks
   information queries thus prevents touchpad detection and configuration.
2. Touchpad and trackpoint have different protocol packet sizes and
   sync bytes.

As PS/2 usage is on decline only minimal possible set of changes to
support Synaptics touchpad and generic mouses is implemented.
Active multiplexing mode is enabled only at probe stage to scan through
attached PS/2 devices to query and configure Synaptics touchpad.
After touchpad has been configured, mux is switched back to legacy
(hidden multiplexing) mode to perform normal interrupt-driven input
data processing. Overflow bit values rather than tags are used to
separate packets produced by different devices. Switching back to
legacy mode allows to avoid psm(4) and atkbd(4) rework to support
4 instances of mouse driver.

Note: While in hidden multiplexing mode KBC does some editing of the
packet stream. It remembers the button bits from the last packet
received from each device, and replaces the button bits of every
packet with the logical OR of all devices’ most recent button bits.
This sort of button crosstalk results in spurious button events
which are inhibitted with various tricks. E.g. trackpoint middle
button events are suppressed while trackpad surface is touched and
touchpad left and right button events are suppressed if corresponding
trackpoint buttons are pressed.

PR:		231058
Reported by:	Michael Figiel &lt;mifigiel at gmail.com&gt;
Tested by:	Michael Figiel &lt;mifigiel at gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
