]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Fix Caps Lock LEDs once and for all (#4824)
authorfauxpark <fauxpark@gmail.com>
Sat, 12 Jan 2019 01:22:06 +0000 (12:22 +1100)
committerDrashna Jaelre <drashna@live.com>
Sat, 12 Jan 2019 01:22:05 +0000 (17:22 -0800)
* 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

tmk_core/protocol/lufa/lufa.c

index 27cf51b1612162905ecad479c2cf4523228f23dd..cdabaf16e61d74407a3a18b1b417d98ae8c48e42 100644 (file)
@@ -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();