~ruther/qmk_firmware

2c4109394fa9ee71b10b8b2d3d1473a409d7003e — fauxpark 6 years ago d9c5e58
Fix Caps Lock LEDs once and for all (#4824)

* Check the size of the SET_REPORT packet

If we have two bytes, that probably means the first is a report ID. The 6KRO interface may or may not have one, but the NKRO interface always does, so we need to check this regardless of whether KEYBOARD_SHARED_EP is defined.

* Fix indentation
1 files changed, 12 insertions(+), 9 deletions(-)

M tmk_core/protocol/lufa/lufa.c
M tmk_core/protocol/lufa/lufa.c => tmk_core/protocol/lufa/lufa.c +12 -9
@@ 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();