From owner-dev-commits-src-branches@freebsd.org Tue Sep 21 23:43:42 2021 Return-Path: Delivered-To: dev-commits-src-branches@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E77F67EF47; Tue, 21 Sep 2021 23:43:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HDdKp2sz2z4qSn; Tue, 21 Sep 2021 23:43:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4214355A9; Tue, 21 Sep 2021 23:43:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 18LNhgBY047966; Tue, 21 Sep 2021 23:43:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 18LNhgJi047965; Tue, 21 Sep 2021 23:43:42 GMT (envelope-from git) Date: Tue, 21 Sep 2021 23:43:42 GMT Message-Id: <202109212343.18LNhgJi047965@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 2cc53be8897b - stable/13 - psm: Use evdev autorelease feature for Synaptics and Elantech drivers MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2cc53be8897bb4ba3e559bb42de0e593966f1cf3 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-branches@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commits to the stable branches of the FreeBSD src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Sep 2021 23:43:42 -0000 The branch stable/13 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=2cc53be8897bb4ba3e559bb42de0e593966f1cf3 commit 2cc53be8897bb4ba3e559bb42de0e593966f1cf3 Author: Vladimir Kondratyev AuthorDate: 2021-09-02 19:30:29 +0000 Commit: Vladimir Kondratyev CommitDate: 2021-09-21 23:39:20 +0000 psm: Use evdev autorelease feature for Synaptics and Elantech drivers (cherry picked from commit 744fcd5ad2a3e572585615df259eb3e2f0b624ef) --- sys/dev/atkbdc/psm.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index 78955bf1b228..f27a49f82a71 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -1730,14 +1730,6 @@ psm_push_st_finger(struct psm_softc *sc, const finger_t *f) evdev_push_abs(sc->evdev_a, ABS_TOOL_WIDTH, f->w); } -static void -psm_release_mt_slot(struct evdev_dev *evdev, int32_t slot) -{ - - evdev_push_abs(evdev, ABS_MT_SLOT, slot); - evdev_push_abs(evdev, ABS_MT_TRACKING_ID, -1); -} - static int psm_register(device_t dev, int model_code) { @@ -1845,6 +1837,8 @@ psm_register_synaptics(device_t dev) evdev_set_id(evdev_a, BUS_I8042, PS2_MOUSE_VENDOR, PS2_MOUSE_SYNAPTICS_PRODUCT, 0); evdev_set_methods(evdev_a, sc, &psm_ev_methods_a); + if (sc->synhw.capAdvancedGestures || sc->synhw.capReportsV) + evdev_set_flag(evdev_a, EVDEV_FLAG_MT_AUTOREL); if (sc->synhw.capReportsV) evdev_set_flag(evdev_a, EVDEV_FLAG_MT_TRACK); @@ -1923,6 +1917,7 @@ psm_register_elantech(device_t dev) evdev_set_id(evdev_a, BUS_I8042, PS2_MOUSE_VENDOR, PS2_MOUSE_ELANTECH_PRODUCT, 0); evdev_set_methods(evdev_a, sc, &psm_ev_methods_a); + evdev_set_flag(evdev_a, EVDEV_FLAG_MT_AUTOREL); evdev_support_event(evdev_a, EV_SYN); evdev_support_event(evdev_a, EV_KEY); @@ -3597,12 +3592,9 @@ proc_synaptics(struct psm_softc *sc, packetbuf_t *pb, mousestatus_t *ms, #ifdef EVDEV_SUPPORT if (evdev_rcpt_mask & EVDEV_RCPT_HW_MOUSE) { - for (id = 0; id < PSM_FINGERS; id++) { + for (id = 0; id < PSM_FINGERS; id++) if (PSM_FINGER_IS_SET(f[id])) psm_push_mt_finger(sc, id, &f[id]); - else - psm_release_mt_slot(sc->evdev_a, id); - } evdev_push_key(sc->evdev_a, BTN_TOUCH, nfingers > 0); evdev_push_nfingers(sc->evdev_a, nfingers); if (nfingers > 0) @@ -4772,9 +4764,6 @@ proc_elantech(struct psm_softc *sc, packetbuf_t *pb, mousestatus_t *ms, evdev_push_abs(sc->evdev_a, ABS_MT_TOUCH_MAJOR, f[id].w * sc->elanhw.dptracex); } - if (sc->elanaction.mask & (1 << id) && - !(mask & (1 << id))) - psm_release_mt_slot(sc->evdev_a, id); } evdev_push_key(sc->evdev_a, BTN_TOUCH, nfingers > 0); evdev_push_nfingers(sc->evdev_a, nfingers);