From: fauxpark Date: Sat, 12 Jan 2019 01:22:06 +0000 (+1100) Subject: Fix Caps Lock LEDs once and for all (#4824) X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2c4109394fa9ee71b10b8b2d3d1473a409d7003e;hp=d9c5e5870efe730af52688b9a268927872f93eb7;p=qmk_firmware.git 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 --- diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 27cf51b16..cdabaf16e 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();