소스 검색

[Core] ChibiOS: Fix USB bus disconnect handling (#18566)

Stefan Kerkmann 2 년 전
부모
커밋
6f13a76530
2개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      tmk_core/protocol/chibios/usb_main.c
  2. 1 0
      tmk_core/protocol/chibios/usb_util.c

+ 2 - 1
tmk_core/protocol/chibios/usb_main.c

@@ -734,6 +734,7 @@ void init_usb_driver(USBDriver *usbp) {
      * after a reset.
      */
     usbDisconnectBus(usbp);
+    usbStop(usbp);
     wait_ms(50);
     usbStart(usbp, &usbcfg);
     usbConnectBus(usbp);
@@ -742,8 +743,8 @@ void init_usb_driver(USBDriver *usbp) {
 }
 
 __attribute__((weak)) void restart_usb_driver(USBDriver *usbp) {
-    usbStop(usbp);
     usbDisconnectBus(usbp);
+    usbStop(usbp);
 
 #if USB_SUSPEND_WAKEUP_DELAY > 0
     // Some hubs, kvm switches, and monitors do

+ 1 - 0
tmk_core/protocol/chibios/usb_util.c

@@ -17,6 +17,7 @@
 #include "usb_util.h"
 
 void usb_disconnect(void) {
+    usbDisconnectBus(&USBD1);
     usbStop(&USBD1);
 }