Commit 935f5391 authored by Angus Gratton's avatar Angus Gratton Committed by Damien George

shared/tinyusb: Don't disconnect on soft reset unless USB was active.

Previously, constructing the singleton USBDevice object was enough to
trigger a USB disconnect on soft reset. Now it also has to be active.

The only case where this changes the behaviour is if the USBDevice object
has been constructed but never set to active (no more disconnect in this
case). Otherwise, behaviour is the same.

This change was requested by hippy on the raspberrypi forums.

This work was funded through GitHub Sponsors.
Signed-off-by: default avatarAngus Gratton <angus@redyak.com.au>
parent 79edaddf
......@@ -431,11 +431,12 @@ void mp_usbd_init(void) {
// Top-level USB device deinit.
//
// This variant is called from soft reset, NULLs out the USB device
// singleton instance from MP_STATE_VM, and disconnects the port.
// singleton instance from MP_STATE_VM, and disconnects the port if a
// runtime device was active.
void mp_usbd_deinit(void) {
mp_obj_usb_device_t *usbd = MP_OBJ_TO_PTR(MP_STATE_VM(usbd));
MP_STATE_VM(usbd) = MP_OBJ_NULL;
if (usbd) {
if (usbd && usbd->active) {
// Disconnect if a runtime USB device was active
mp_usbd_disconnect(usbd);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment