[Bug 289154] USB keyboard modifier keys not recognized on Minisforum MS-A2

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 30 Nov 2025 19:35:42 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289154

--- Comment #6 from Vincent Milum Jr <freebsd@darkain.com> ---
As a quick followup, I went and found that original discussion on Discord:

https://discord.com/channels/727023752348434432/1372409106312204378/1394356379522695199

And here was the diff I used for testing. As noted previously, this "fixed" the
modifiers, but caused other problems, so its not a REAL fix. I don't recall off
the top of my head what all it broke otherwise, but I do remember it was an
issue and why I never submitted it as a patch.



diff --git a/sys/dev/usb/input/ukbd.c b/sys/dev/usb/input/ukbd.c
index 57e9beac3..5034f2c27 100644
--- a/sys/dev/usb/input/ukbd.c
+++ b/sys/dev/usb/input/ukbd.c
@@ -761,9 +761,9 @@ ukbd_intr_callback(struct usb_xfer *xfer, usb_error_t
error)
                                continue;       /* skip empty areas */
                        } else if (~valid & mask) {
                                continue;       /* location is not valid */
-                       } else if (id != sc->sc_id_loc_key[i]) {
-                               continue;       /* invalid HID ID */
-                       } else if (i == 0) {
+//                     } else if (id != sc->sc_id_loc_key[i]) {
+//                             continue;       /* invalid HID ID */
+                       } else if ((i == 0)  &&  (id == sc->sc_id_loc_key[i]))
{
                                struct hid_location tmp_loc =
sc->sc_loc_key[0];
                                /* range check array size */
                                if (tmp_loc.count > UKBD_NKEYCODE)

-- 
You are receiving this mail because:
You are the assignee for the bug.