Fix chibios when mouse and nkro disabled (#7312)
This commit is contained in:
parent
60e4921378
commit
1d4287cb95
1 changed files with 6 additions and 16 deletions
|
@ -379,7 +379,6 @@ static void set_led_transfer_cb(USBDriver *usbp) {
|
|||
/* Callback for SETUP request on the endpoint 0 (control) */
|
||||
static bool usb_request_hook_cb(USBDriver *usbp) {
|
||||
const USBDescriptor *dp;
|
||||
int has_report_id;
|
||||
|
||||
/* usbp->setup fields:
|
||||
* 0: bmRequestType (bitmask)
|
||||
|
@ -432,26 +431,17 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
|
|||
switch (usbp->setup[1]) { /* bRequest */
|
||||
case HID_SET_REPORT:
|
||||
switch (usbp->setup[4]) { /* LSB(wIndex) (check MSB==0 and wLength==1?) */
|
||||
case KEYBOARD_INTERFACE:
|
||||
#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
|
||||
case SHARED_INTERFACE:
|
||||
usbSetupTransfer(usbp, set_report_buf, sizeof(set_report_buf), set_led_transfer_cb);
|
||||
return TRUE;
|
||||
break;
|
||||
#endif
|
||||
|
||||
case KEYBOARD_INTERFACE:
|
||||
/* keyboard_led_stats = <read byte from next OUT report>
|
||||
* keyboard_led_stats needs be word (or dword), otherwise we get an exception on F0 */
|
||||
has_report_id = 0;
|
||||
#if defined(SHARED_EP_ENABLE)
|
||||
if (usbp->setup[4] == SHARED_INTERFACE) {
|
||||
has_report_id = 1;
|
||||
}
|
||||
#endif
|
||||
if (usbp->setup[4] == KEYBOARD_INTERFACE && !keyboard_protocol) {
|
||||
has_report_id = 0;
|
||||
}
|
||||
if (has_report_id) {
|
||||
usbSetupTransfer(usbp, set_report_buf, sizeof(set_report_buf), set_led_transfer_cb);
|
||||
} else {
|
||||
usbSetupTransfer(usbp, (uint8_t *)&keyboard_led_stats, 1, NULL);
|
||||
}
|
||||
return TRUE;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue