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)

Reply via email to