diff options
Diffstat (limited to 'tmk_core/protocol')
| -rw-r--r-- | tmk_core/protocol/lufa/lufa.c | 21 | 
1 files changed, 12 insertions, 9 deletions
| diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 27cf51b161..cdabaf16e6 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -517,17 +517,20 @@ void EVENT_USB_Device_ControlRequest(void)                          if (USB_DeviceState == DEVICE_STATE_Unattached)                            return;                      } -#ifdef KEYBOARD_SHARED_EP -                    uint8_t report_id = REPORT_ID_KEYBOARD; -                    if (keyboard_protocol) { -                       report_id = Endpoint_Read_8(); -                    } -                    if (report_id == REPORT_ID_KEYBOARD || report_id == REPORT_ID_NKRO) { + +                    if (Endpoint_BytesInEndpoint() == 2) { +                      uint8_t report_id = REPORT_ID_KEYBOARD; + +                      if (keyboard_protocol) { +                        report_id = Endpoint_Read_8(); +                      } + +                      if (report_id == REPORT_ID_KEYBOARD || report_id == REPORT_ID_NKRO) {                          keyboard_led_stats = Endpoint_Read_8(); +                      } +                    } else { +                      keyboard_led_stats = Endpoint_Read_8();                      } -#else -                    keyboard_led_stats = Endpoint_Read_8(); -#endif                      Endpoint_ClearOUT();                      Endpoint_ClearStatusStage(); | 
