Эх сурвалжийг харах

[Keyboard] Backport two fixes from TMK: usb-usb converter (#6383)

* usb_usb: Order of init prevents uneeded bus reset
https://github.com/tmk/tmk_keyboard/commit/7c228967a405b04d58bb06e619de8d1d7bb3c15b#diff-deed77fb597e3a0019ce59fc1d09e260

* usb_usb: Fix startup block bug
https://github.com/tmk/tmk_keyboard/commit/c2ce617a363f3b9d43aa81f98e70d58f928931f4#diff-deed77fb597e3a0019ce59fc1d09e260
Michael Pishchagin 5 жил өмнө
parent
commit
28f53462d0

+ 6 - 6
keyboards/converter/usb_usb/custom_matrix.cpp

@@ -74,8 +74,6 @@ static bool matrix_is_mod = false;
  * This supports two cascaded hubs and four keyboards
  */
 USB usb_host;
-USBHub hub1(&usb_host);
-USBHub hub2(&usb_host);
 HIDBoot<HID_PROTOCOL_KEYBOARD>    kbd1(&usb_host);
 HIDBoot<HID_PROTOCOL_KEYBOARD>    kbd2(&usb_host);
 HIDBoot<HID_PROTOCOL_KEYBOARD>    kbd3(&usb_host);
@@ -84,6 +82,8 @@ KBDReportParser kbd_parser1;
 KBDReportParser kbd_parser2;
 KBDReportParser kbd_parser3;
 KBDReportParser kbd_parser4;
+USBHub hub1(&usb_host);
+USBHub hub2(&usb_host);
 
 
 extern "C"
@@ -252,10 +252,10 @@ extern "C"
 
     void led_set(uint8_t usb_led)
     {
-        kbd1.SetReport(0, 0, 2, 0, 1, &usb_led);
-        kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
-        kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
-        kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
+        if (kbd1.isReady()) kbd1.SetReport(0, 0, 2, 0, 1, &usb_led);
+        if (kbd2.isReady()) kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
+        if (kbd3.isReady()) kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
+        if (kbd4.isReady()) kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
         led_set_kb(usb_led);
     }