Date: Tue, 17 Feb 2026 20:41:23 +0000 From: Vladimir Kondratyev <wulf@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Robert Wahlberg <freebsd@robertwahlberg.se> Subject: git: 68ab94288203 - stable/15 - psm: Fix three finger tap on elantech v4 touchpads Message-ID: <6994d273.1ebb4.3837da6e@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=68ab9428820348f1e3923532a041898bb95bcf5c commit 68ab9428820348f1e3923532a041898bb95bcf5c Author: Robert Wahlberg <freebsd@robertwahlberg.se> AuthorDate: 2025-12-01 20:42:15 +0000 Commit: Vladimir Kondratyev <wulf@FreeBSD.org> CommitDate: 2026-02-17 20:38:26 +0000 psm: Fix three finger tap on elantech v4 touchpads Fix an issue where a three finger tap would generate additional events when fingers moved slightly during the tap. Signed-off-by: Robert Wahlberg <freebsd@robertwahlberg.se> Pull Request: https://github.com/freebsd/freebsd-src/pull/1792 Reviewed by: wulf MFC after: 1 month (cherry picked from commit e3201cec8381c0582374f93991eff4a71bb95e9b) --- sys/dev/atkbdc/psm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index 137758b104d3..d36396df0fa0 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -4666,6 +4666,13 @@ proc_elantech(struct psm_softc *sc, packetbuf_t *pb, mousestatus_t *ms, mask = sc->elanaction.mask; nfingers = bitcount(mask); + /* The motion packet can only update two fingers at a time. + * Copy the previous state to get all active fingers. */ + for (id = 0; id < ELANTECH_MAX_FINGERS; id++) + if (sc->elanaction.mask & (1 << id)) + f[id] = sc->elanaction.fingers[id]; + + /* Update finger positions from the new packet */ scale = (pb->ipacket[0] & 0x10) ? 5 : 1; for (i = 0; i <= 3; i += 3) { id = ((pb->ipacket[i] & 0xe0) >> 5) - 1;home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6994d273.1ebb4.3837da6e>
