From 168c7095e849e448cb7d3b755ea3b6e236f502ed Mon Sep 17 00:00:00 2001 From: Jerzy Kasenberg Date: Sun, 16 Jan 2022 16:13:21 +0100 Subject: [PATCH] pic32mz: Fix remote_wakeup without OS Remote wakeup requires 10ms of delay when RESUME bit is toggled. It was covered for OS build. For non-OS build simple delay based on board_millis() is used to wait required amount of time. Without this remote wakup may not work. --- src/portable/microchip/pic32mz/dcd_pic32mz.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/portable/microchip/pic32mz/dcd_pic32mz.c b/src/portable/microchip/pic32mz/dcd_pic32mz.c index 323d01a71..740e5edbb 100644 --- a/src/portable/microchip/pic32mz/dcd_pic32mz.c +++ b/src/portable/microchip/pic32mz/dcd_pic32mz.c @@ -163,6 +163,10 @@ void dcd_remote_wakeup(uint8_t rhport) USB_REGS->POWERbits.RESUME = 1; #if CFG_TUSB_OS != OPT_OS_NONE osal_task_delay(10); +#else + // TODO: Wait in non blocking mode + unsigned cnt = 2000; + while (cnt--) __asm__("nop"); #endif USB_REGS->POWERbits.RESUME = 0; }