History log of /openbsd-src/sys/dev/usb/ucc.c (Results 26 – 37 of 37)
Revision Date Author Comments
# 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 ...


12