Anton Lindqvist <an...@openbsd.org> writes: > On Thu, Nov 11, 2021 at 03:29:15PM +0100, Anton Lindqvist wrote: >> Hi, >> The second attempt to solve the uhidev claim multiple report ids >> conflict didn't work out either as it broke fido(4). Signalling claim >> multiple report ids to the match routines using the report id does not >> work as all 256 values already have semantic meaning. I instead want to >> use `uha->claimed != NULL' to signal that multiple report ids can be >> claimed. Before doing so, refactor in order to make an upcoming diff >> with the actual fix significantly smaller. >> >> No intended^W functional change. >> >> Comments? OK? > > ... and here's the actual fix applied on top of the previous diff.
The pair of diffs seems to work for me (fido remains operational unlike the previous iteration). There's a minor change in dmesg output which is not otherwise consequential: OpenBSD 7.0-current (GENERIC.MP) #14: Wed Nov 10 22:17:10 PST 2021 ... xhci0 at pci4 dev 0 function 1 "AMD 17h xHCI" rev 0x00: msi, xHCI 1.10 usb0 at xhci0: USB revision 3.0 uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1 ... uhub4 at uhub0 port 1 configuration 1 interface 0 "VIA Labs, Inc. USB2.0 Hub" rev 2.10/b.e0 addr 2 uhidev0 at uhub4 port 1 configuration 1 interface 0 "Kinesis Advantage2 Keyboard" rev 2.00/1.00 addr 3 uhidev0: iclass 3/1 ums0 at uhidev0: 3 buttons, Z dir wsmouse0 at ums0 mux 0 uhidev1 at uhub4 port 1 configuration 1 interface 1 "Kinesis Advantage2 Keyboard" rev 2.00/1.00 addr 3 uhidev1: iclass 3/1 ukbd0 at uhidev1: 8 variable keys, 6 key codes wskbd1 at ukbd0 mux 1 uhidev2 at uhub4 port 1 configuration 1 interface 2 "Kinesis Advantage2 Keyboard" rev 2.00/1.00 addr 3 uhidev2: iclass 3/0, 2 report ids ucc0 at uhidev2 reportid 1: 7 usages, 7 keys, enum wskbd2 at ucc0 mux 1 uhid0 at uhidev2 reportid 2: input=1, output=0, feature=0 uhidev3 at uhub4 port 2 configuration 1 interface 0 "Yubico Yubico Gnubby (gnubby1)" rev 2.00/0.97 addr 4 uhidev3: iclass 3/0 fido0 at uhidev3: input=64, output=64, feature=0 uhidev4 at uhub4 port 4 configuration 1 interface 0 "Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)" rev 1.10/3.00 addr 5 uhidev4: iclass 3/1 ums1 at uhidev4: 3 buttons, Z dir wsmouse1 at ums1 mux 0 uhub5 at uhub0 port 8 configuration 1 interface 0 "VIA Labs, Inc. USB3.0 Hub" rev 3.00/b.e1 addr 6 ... wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0 wskbd1: connecting to wsdisplay0 wskbd2: connecting to wsdisplay0 wsdisplay0: screen 1-5 added (std, vt100 emulation) OpenBSD 7.0-current (GENERIC.MP) #15: Thu Nov 11 16:55:24 PST 2021 ... xhci0 at pci4 dev 0 function 1 "AMD 17h xHCI" rev 0x00: msi, xHCI 1.10 usb0 at xhci0: USB revision 3.0 uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1 ... uhub4 at uhub0 port 1 configuration 1 interface 0 "VIA Labs, Inc. USB2.0 Hub" rev 2.10/b.e0 addr 2 uhidev0 at uhub4 port 1 configuration 1 interface 0 "Kinesis Advantage2 Keyboard" rev 2.00/1.00 addr 3 uhidev0: iclass 3/1 ums0 at uhidev0: 3 buttons, Z dir wsmouse0 at ums0 mux 0 ums1 at uhidev0: 3 buttons, Z dir wsmouse1 at ums1 mux 0 uhidev1 at uhub4 port 1 configuration 1 interface 1 "Kinesis Advantage2 Keyboard" rev 2.00/1.00 addr 3 uhidev1: iclass 3/1 ukbd0 at uhidev1: 8 variable keys, 6 key codes wskbd1 at ukbd0 mux 1 ukbd1 at uhidev1: 8 variable keys, 6 key codes wskbd2 at ukbd1 mux 1 uhidev2 at uhub4 port 1 configuration 1 interface 2 "Kinesis Advantage2 Keyboard" rev 2.00/1.00 addr 3 uhidev2: iclass 3/0, 2 report ids ucc0 at uhidev2 reportid 1: 7 usages, 7 keys, enum wskbd3 at ucc0 mux 1 uhid0 at uhidev2 reportid 2: input=1, output=0, feature=0 uhidev3 at uhub4 port 2 configuration 1 interface 0 "Yubico Yubico Gnubby (gnubby1)" rev 2.00/0.97 addr 4 uhidev3: iclass 3/0 fido0 at uhidev3: input=64, output=64, feature=0 uhidev4 at uhub4 port 4 configuration 1 interface 0 "Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)" rev 1.10/3.00 addr 5 uhidev4: iclass 3/1 ums2 at uhidev4: 3 buttons, Z dir wsmouse2 at ums2 mux 0 ums3 at uhidev4: 3 buttons, Z dir wsmouse3 at ums3 mux 0 uhub5 at uhub0 port 8 configuration 1 interface 0 "VIA Labs, Inc. USB3.0 Hub" rev 3.00/b.e1 addr 6 ... wsdisplay0 at amdgpu0 mux 1: console (std, vt100 emulation), using wskbd0 wskbd1: connecting to wsdisplay0 wskbd2: connecting to wsdisplay0 wskbd3: connecting to wsdisplay0 wsdisplay0: screen 1-5 added (std, vt100 emulation)