diff options
author | Vladimir Kondratyev <wulf@FreeBSD.org> | 2020-12-22 20:44:42 +0000 |
---|---|---|
committer | Vladimir Kondratyev <wulf@FreeBSD.org> | 2020-12-23 08:10:53 +0000 |
commit | 2ac1c1927258e649e3ca3269aea40fb4c63e2296 (patch) | |
tree | 835323fec8be8c2d56270c9c88a2f1916ab2ac2f | |
parent | bde56c99426431c6319afd35c2a3cd66e315034a (diff) | |
download | src-2ac1c1927258e649e3ca3269aea40fb4c63e2296.tar.gz src-2ac1c1927258e649e3ca3269aea40fb4c63e2296.zip |
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
-rw-r--r-- | sys/dev/atkbdc/psm.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index f2c4cc71e242..3774b0a3b734 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -6423,6 +6423,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); @@ -6564,13 +6573,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) { @@ -6586,13 +6588,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; } /* |