aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core/protocol/chibios/usb_main.c
diff options
context:
space:
mode:
authorGravatar Joel Challis <git@zvecr.com>2019-11-10 17:02:46 +0000
committerGravatar Drashna Jaelre <drashna@live.com>2019-11-10 09:02:46 -0800
commit1d4287cb9535a8ba7ab5d2aa0846167f34fc5b67 (patch)
tree69fdb918d37a66dec27c3ec28b6405d7689584ec /tmk_core/protocol/chibios/usb_main.c
parent60e4921378d879eed110f801328e9642f35fa1e9 (diff)
downloadqmk_firmware-1d4287cb9535a8ba7ab5d2aa0846167f34fc5b67.tar.gz
Fix chibios when mouse and nkro disabled (#7312)
Diffstat (limited to 'tmk_core/protocol/chibios/usb_main.c')
-rw-r--r--tmk_core/protocol/chibios/usb_main.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c
index c8a6bbb43..f7bfa20b2 100644
--- a/tmk_core/protocol/chibios/usb_main.c
+++ b/tmk_core/protocol/chibios/usb_main.c
@@ -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);
- }
+ usbSetupTransfer(usbp, (uint8_t *)&keyboard_led_stats, 1, NULL);
return TRUE;
break;
}