Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Nov 2023 15:22:48 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: 16a379ffde4b - stable/14 - hmt(4): Do not require input report HID usages to be a member of TLC
Message-ID:  <202311271522.3ARFMmd9096306@gitrepo.freebsd.org>

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

URL: https://cgit.FreeBSD.org/src/commit/?id=16a379ffde4baadc5bc5bae23658b0bf2ff6ab2f

commit 16a379ffde4baadc5bc5bae23658b0bf2ff6ab2f
Author:     Vladimir Kondratyev <wulf@FreeBSD.org>
AuthorDate: 2023-11-02 06:20:20 +0000
Commit:     Vladimir Kondratyev <wulf@FreeBSD.org>
CommitDate: 2023-11-27 15:20:16 +0000

    hmt(4): Do not require input report HID usages to be a member of TLC
    
    Some touchpads places button usages (in HID report descriptor) in to
    the 2-nd level collection rather than in to the top level one. That
    confuses current code. Remove collection level check in HID report
    descriptor parser to fix device detection.
    
    Reported by:    Peter Much <pmc@citylink.dinoex.sub.org>
    PR:             267094
    
    (cherry picked from commit 1d46c8e5c2702c141c6be982b3ca44e74d1cb8f1)
---
 sys/dev/hid/hmt.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/sys/dev/hid/hmt.c b/sys/dev/hid/hmt.c
index 199a6a2ff045..f6b593222317 100644
--- a/sys/dev/hid/hmt.c
+++ b/sys/dev/hid/hmt.c
@@ -744,14 +744,13 @@ hmt_hid_parse(struct hmt_softc *sc, const void *d_ptr, hid_size_t d_len,
 			else
 				break;
 
-			if (hi.collevel == 1 && left_btn == 2 &&
+			if (left_btn == 2 &&
 			    hi.usage == HID_USAGE2(HUP_BUTTON, 1)) {
 				has_int_button = true;
 				sc->int_btn_loc = hi.loc;
 				break;
 			}
-			if (hi.collevel == 1 &&
-			    hi.usage >= HID_USAGE2(HUP_BUTTON, left_btn) &&
+			if (hi.usage >= HID_USAGE2(HUP_BUTTON, left_btn) &&
 			    hi.usage <= HID_USAGE2(HUP_BUTTON, HMT_BTN_MAX)) {
 				btn = (hi.usage & 0xFFFF) - left_btn;
 				setbit(sc->buttons, btn);
@@ -760,13 +759,13 @@ hmt_hid_parse(struct hmt_softc *sc, const void *d_ptr, hid_size_t d_len,
 					sc->max_button = btn + 1;
 				break;
 			}
-			if (hi.collevel == 1 && hi.usage ==
+			if (hi.usage ==
 			    HID_USAGE2(HUP_DIGITIZERS, HUD_CONTACTCOUNT)) {
 				cont_count_found = true;
 				sc->cont_count_loc = hi.loc;
 				break;
 			}
-			if (hi.collevel == 1 && hi.usage ==
+			if (hi.usage ==
 			    HID_USAGE2(HUP_DIGITIZERS, HUD_SCAN_TIME)) {
 				scan_time_found = true;
 				sc->scan_time_loc = hi.loc;



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