Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Feb 2021 10:19:13 GMT
From:      Vladimir Kondratyev <wulf@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 4e33793cf41c - stable/12 - psm(4): Always initialize Synaptics touchpad report range with defaults
Message-ID:  <202102051019.115AJDam029906@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by wulf:

URL: https://cgit.FreeBSD.org/src/commit/?id=4e33793cf41c0ec6b5db68bca1451db3e3d79a91

commit 4e33793cf41c0ec6b5db68bca1451db3e3d79a91
Author:     Vladimir Kondratyev <wulf@FreeBSD.org>
AuthorDate: 2020-12-22 20:44:42 +0000
Commit:     Vladimir Kondratyev <wulf@FreeBSD.org>
CommitDate: 2021-02-05 10:15:00 +0000

    psm(4): Always initialize Synaptics touchpad report range with defaults
    
    Otherwise libinput refuses to recoginize some Synaptics touchpads with
    "kernel bug: device has min == max on ABS_X" message in Xorg.log.
    
    PR:             251149
    Reported-by:    Jens Grassel <freebsd-ports@jan0sch.de>
    Tested-by:      Jens Grassel <freebsd-ports@jan0sch.de>
    MFC-after:      2 weeks
    (cherry picked from commit 2ac1c1927258e649e3ca3269aea40fb4c63e2296)
---
 sys/dev/atkbdc/psm.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c
index d15adb63acb0..f9b8b098ea87 100644
--- a/sys/dev/atkbdc/psm.c
+++ b/sys/dev/atkbdc/psm.c
@@ -6387,6 +6387,15 @@ enable_synaptics(struct psm_softc *sc, enum probearg arg)
 		printf("   infoGeometry: %d\n", synhw.infoGeometry);
 	}
 
+	/*
+	 * Typical bezel limits. Taken from 'Synaptics
+	 * PS/2 * TouchPad Interfacing Guide' p.3.2.3.
+	 */
+	synhw.maximumXCoord = 5472;
+	synhw.maximumYCoord = 4448;
+	synhw.minimumXCoord = 1472;
+	synhw.minimumYCoord = 1408;
+
 	/* Read the extended capability bits. */
 	if (mouse_ext_command(kbdc, SYNAPTICS_READ_CAPABILITIES) == 0)
 		return (FALSE);
@@ -6528,13 +6537,6 @@ enable_synaptics(struct psm_softc *sc, enum probearg arg)
 						     ((status[1] & 0x0f) << 1);
 				synhw.maximumYCoord = (status[2] << 5) |
 						     ((status[1] & 0xf0) >> 3);
-			} else {
-				/*
-				 * Typical bezel limits. Taken from 'Synaptics
-				 * PS/2 * TouchPad Interfacing Guide' p.3.2.3.
-				 */
-				synhw.maximumXCoord = 5472;
-				synhw.maximumYCoord = 4448;
 			}
 
 			if (synhw.capReportsMin) {
@@ -6550,13 +6552,6 @@ enable_synaptics(struct psm_softc *sc, enum probearg arg)
 						     ((status[1] & 0x0f) << 1);
 				synhw.minimumYCoord = (status[2] << 5) |
 						     ((status[1] & 0xf0) >> 3);
-			} else {
-				/*
-				 * Typical bezel limits. Taken from 'Synaptics
-				 * PS/2 * TouchPad Interfacing Guide' p.3.2.3.
-				 */
-				synhw.minimumXCoord = 1472;
-				synhw.minimumYCoord = 1408;
 			}
 
 			/*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202102051019.115AJDam029906>