~ruther/qmk_firmware

6f13a76530165bb1ad723ab0270c9eb908ca3a8c — Stefan Kerkmann 2 years ago c4ff819
[Core] ChibiOS: Fix USB bus disconnect handling (#18566)

2 files changed, 3 insertions(+), 1 deletions(-)

M tmk_core/protocol/chibios/usb_main.c
M tmk_core/protocol/chibios/usb_util.c
M tmk_core/protocol/chibios/usb_main.c => tmk_core/protocol/chibios/usb_main.c +2 -1
@@ 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

M tmk_core/protocol/chibios/usb_util.c => tmk_core/protocol/chibios/usb_util.c +1 -0
@@ 17,6 17,7 @@
#include "usb_util.h"

void usb_disconnect(void) {
    usbDisconnectBus(&USBD1);
    usbStop(&USBD1);
}