qmk-keychron-q3-colemak-dh/tmk_core/protocol/vusb
Stefan Kerkmann 32174abcfa
Update keyboard report descriptor for USB compliance (#21626)
Running the "HID Tests" suite of the USB 3 Command Verifier (USB3CV)
tool resulted in the following error:

(HID: 3.2.61) The report descriptor returned in response to a
GetDescriptor(Report) must be compliant with the HID specification.

Byte Number:   37h (  55d)
Data Field: 91 02
Mnemonic:  Output
Value: (Variable)
Errors: Error:   LOGICAL MAX MUST be bounded by Report Size

The error stems from the fact that logical minimum and maximum are
global items, which means that the next item in a report descriptor
inherits the value from the previously set value. In this case the
status leds item inherited the logical minimum (=0) and maximum (=255)
from the keycodes item. As the status leds set a report size of 1 bit,
wich can only hold a boolean, it becomes clear that this range would
never fit.

The fix is straightforward, we just define a appropriate logical maximum
(=1), the mismatch is solved and our keyboard now passes the compliance
tests. Defining the logical minimum is redundant in this case but is
kept to form a logical block.
2023-07-28 01:05:01 +01:00
..
protocol.c VUSB - Use correct endpoint poll for VIA (#16691) 2022-03-19 17:40:47 +00:00
usb_util.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usbconfig.h Update vusb to match 3rd endpoint. (#9020) 2020-08-29 14:30:02 -07:00
vusb.c Update keyboard report descriptor for USB compliance (#21626) 2023-07-28 01:05:01 +01:00
vusb.h Switch over MANUFACTURER and PRODUCT to string literals (#18183) 2022-08-28 09:59:40 -07:00
vusb.mk Move protocol makefiles into their respective folders (#21332) 2023-06-22 15:07:28 +01:00