#
0677f197 |
| 26-Aug-2021 |
anton <anton@openbsd.org> |
Add missing leading colon to error message.
|
#
57f3bdf6 |
| 25-Aug-2021 |
anton <anton@openbsd.org> |
Make all conversion routines consistent by returning a struct ucc_keysym. No functional change.
|
#
da425875 |
| 25-Aug-2021 |
anton <anton@openbsd.org> |
Remove the KB_DEFAULT flag from the wskbd keymap layout. Presence of this flag will cause wskbd to discard the given keymap layout and instead favor the layout of the associated wsmux. This is not a
Remove the KB_DEFAULT flag from the wskbd keymap layout. Presence of this flag will cause wskbd to discard the given keymap layout and instead favor the layout of the associated wsmux. This is not a problem while attaching ucc(4) during boot as the wsmux uses the default layout at this point. However, if the layout is changed using /etc/kbdtype from rc(8) during boot, attaching ucc(4) at this point would cause wskbd_attach() to get stuck in an infinite loop:
wskbdX: cannot load keymap, falling back to default
... which in turn is caused by ucc(4) only providing a us layout and using anything else in /etc/kbdtype would not work.
I missed this as I don't use /etc/kbdtype but cwen@ and Mazzurco Riccardo <mazzurco dot riccardo at protonmail dot com> reported the same problem.
show more ...
|
#
20c31238 |
| 25-Aug-2021 |
anton <anton@openbsd.org> |
Prevent ucc(4) from matching report IDs with an empty input report.
Fixes cwen@'s Creative BT-W3 audio device.
|
#
71e59321 |
| 25-Aug-2021 |
anton <anton@openbsd.org> |
If the buffer given to the ucc interrupt handler is too long, do not discard it but instead just inspect the first bytes that can make up a usage. This is a work around as the correct solution is to
If the buffer given to the ucc interrupt handler is too long, do not discard it but instead just inspect the first bytes that can make up a usage. This is a work around as the correct solution is to only inspect a limited number of bits as given by the report count and size associated with the Consumer usage page.
Final piece to get florian@'s Microsoft Sculpt keyboard working.
show more ...
|
#
cfd7874d |
| 25-Aug-2021 |
anton <anton@openbsd.org> |
Determine if a hid item is an array by solely inspecting presence of associated min/max boundaries. Assuming that every usage array starts with the Control usage is incorrect.
Fixes claudio@'s GMMK
Determine if a hid item is an array by solely inspecting presence of associated min/max boundaries. Assuming that every usage array starts with the Control usage is incorrect.
Fixes claudio@'s GMMK keyboard and partial fix for florian@'s Microsoft Sculpt keyboard.
show more ...
|
#
08861470 |
| 24-Aug-2021 |
anton <anton@openbsd.org> |
Some consumer control descriptor reports uses an array of usages instead of enumerating all supported ones. This representation is more compact as all supported usages are given by the array min and
Some consumer control descriptor reports uses an array of usages instead of enumerating all supported ones. This representation is more compact as all supported usages are given by the array min and max boundaries.
In enumerating mode, the interrupt report has one level indirection as it includes the bit offset of the usage requiring the driver to map bits to usages in order to resolve the key press. In array mode, the interrupt report includes the usage without any indirection, removing the need map bits to usages.
ucc(4) can now operate either in enumerating or array mode depending on the descriptor report. This should make more keyboards usable.
Thanks to Alessandro De Laurenzis <just22 at atlantide dot mooo dot com> for testing.
show more ...
|
#
50fb1c23 |
| 23-Aug-2021 |
anton <anton@openbsd.org> |
I missed that wskbd_rawinput() is hidden behind WSDISPLAY_COMPAT_RAWKBD as discovered by deraadt@; should hopefully make ucc(4) work on alpha.
|
#
c9c68f2d |
| 22-Aug-2021 |
anton <anton@openbsd.org> |
Since the raw keymap already has a capacity of holding all present keys, use it as a lookup table using the bit as the index. Removes the need to linearly scan the same keymap during handling of a ke
Since the raw keymap already has a capacity of holding all present keys, use it as a lookup table using the bit as the index. Removes the need to linearly scan the same keymap during handling of a key press, not that performance matters here since the length of the keymap is small but the code gets a bit simpler and one struct becomes redundant.
While here, fix two incorrect conditionals in ucc_parse_hid() which compared two different quantities.
show more ...
|
#
86767518 |
| 21-Aug-2021 |
anton <anton@openbsd.org> |
fix indent in previous
|
#
83811a03 |
| 21-Aug-2021 |
deraadt <deraadt@openbsd.org> |
refactor to resolve unused variable on non-WSDISPLAY_COMPAT_RAWKBD arch
|
#
bdbba0eb |
| 20-Aug-2021 |
anton <anton@openbsd.org> |
Add ucc(4), a driver for USB HID Consumer Control keyboards. Such keyboard is a pseudo device which is used to expose audio and application launch keys. My prime motivation is to get the volume mute,
Add ucc(4), a driver for USB HID Consumer Control keyboards. Such keyboard is a pseudo device which is used to expose audio and application launch keys. My prime motivation is to get the volume mute, increment and decrement keys to just work on my keyboard without the need to use usbhidaction(1).
Looks reasonable to kettenis@ mpi@ and ok jcs@
show more ...
|