From 2ceba0fdc431258705473eec44a090b3d159faa7 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Fri, 4 Mar 2022 18:05:56 +0100 Subject: [PATCH] firmware: usb: call USBD_HAL_DISCONNECT while usb init to recover from resets The firmware doesn't recover from a OSMO_ASSERT() which direct reset the board. After the reset the firmware will waits forever for the USBD state USBD_STATE_CONFIGURED. By adding the explicit USBD_HAL_DISCONNECT the board always recovers. Fixes: OS#5478 Related: SYS#5752 Change-Id: I600a26025166d20b6b27c191f24e4023efdaadf6 --- firmware/libcommon/source/usb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/firmware/libcommon/source/usb.c b/firmware/libcommon/source/usb.c index 7a99b158..25b35cf8 100644 --- a/firmware/libcommon/source/usb.c +++ b/firmware/libcommon/source/usb.c @@ -689,6 +689,7 @@ void SIMtrace_USB_Initialize(void) { unsigned int i; /* Signal USB reset by disabling the pull-up on USB D+ for at least 10 ms */ + USBD_HAL_Disconnect(); USBD_HAL_Suspend(); mdelay(500); USBD_HAL_Activate();