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

This commit is contained in:
Stefan Kerkmann 2022-10-02 15:35:33 +02:00 committed by GitHub
parent c4ff8192c2
commit 6f13a76530
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 1 deletions

View File

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

View File

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