diff --git a/ports/mimxrt/mphalport.h b/ports/mimxrt/mphalport.h index c69ebf58106b..a0e457502442 100644 --- a/ports/mimxrt/mphalport.h +++ b/ports/mimxrt/mphalport.h @@ -109,6 +109,10 @@ __attribute__((always_inline)) static inline uint32_t disable_irq(void) { void mp_hal_set_interrupt_char(int c); +static inline void mp_hal_wake_main_task_from_isr(void) { + // Defined for tinyusb support, nothing needs to be done here. +} + static inline mp_uint_t mp_hal_ticks_ms(void) { return ticks_ms32(); } diff --git a/ports/nrf/mphalport.h b/ports/nrf/mphalport.h index 50c61aefcdd5..a0bca58a625b 100644 --- a/ports/nrf/mphalport.h +++ b/ports/nrf/mphalport.h @@ -53,6 +53,10 @@ void mp_hal_set_interrupt_char(int c); // -1 to disable int mp_hal_stdin_rx_chr(void); void mp_hal_stdout_tx_str(const char *str); +static inline void mp_hal_wake_main_task_from_isr(void) { + // Defined for tinyusb support, nothing needs to be done here. +} + void mp_hal_delay_ms(mp_uint_t ms); void mp_hal_delay_us(mp_uint_t us); diff --git a/ports/renesas-ra/mphalport.h b/ports/renesas-ra/mphalport.h index 14e6ee0c3eea..0819abeaf617 100644 --- a/ports/renesas-ra/mphalport.h +++ b/ports/renesas-ra/mphalport.h @@ -52,6 +52,10 @@ static inline int mp_hal_status_to_neg_errno(HAL_StatusTypeDef status) { NORETURN void mp_hal_raise(HAL_StatusTypeDef status); void mp_hal_set_interrupt_char(int c); // -1 to disable +static inline void mp_hal_wake_main_task_from_isr(void) { + // Defined for tinyusb support, nothing needs to be done here. +} + // timing functions #include "irq.h" diff --git a/ports/rp2/mphalport.h b/ports/rp2/mphalport.h index 16ac4259a6fe..09ad54dd1eb7 100644 --- a/ports/rp2/mphalport.h +++ b/ports/rp2/mphalport.h @@ -77,6 +77,10 @@ void mp_thread_end_atomic_section(uint32_t); void mp_hal_set_interrupt_char(int c); void mp_hal_time_ns_set_from_rtc(void); +static inline void mp_hal_wake_main_task_from_isr(void) { + // Defined for tinyusb support, nothing needs to be done here. +} + static inline void mp_hal_delay_us_fast(mp_uint_t us) { busy_wait_us(us); } diff --git a/ports/samd/mphalport.h b/ports/samd/mphalport.h index ee1ebf7aea2b..6c9e525bb916 100644 --- a/ports/samd/mphalport.h +++ b/ports/samd/mphalport.h @@ -50,6 +50,10 @@ uint64_t mp_hal_ticks_us_64(void); void mp_hal_set_interrupt_char(int c); +static inline void mp_hal_wake_main_task_from_isr(void) { + // Defined for tinyusb support, nothing needs to be done here. +} + __attribute__((always_inline)) static inline void enable_irq(uint32_t state) { __set_PRIMASK(state); } diff --git a/shared/tinyusb/mp_usbd.c b/shared/tinyusb/mp_usbd.c index 436314dcde5c..7ccfa7018d4b 100644 --- a/shared/tinyusb/mp_usbd.c +++ b/shared/tinyusb/mp_usbd.c @@ -24,7 +24,7 @@ * THE SOFTWARE. */ -#include "py/mpconfig.h" +#include "py/mphal.h" #if MICROPY_HW_ENABLE_USBDEV @@ -55,6 +55,7 @@ extern void __real_dcd_event_handler(dcd_event_t const *event, bool in_isr); TU_ATTR_FAST_FUNC void __wrap_dcd_event_handler(dcd_event_t const *event, bool in_isr) { __real_dcd_event_handler(event, in_isr); mp_usbd_schedule_task(); + mp_hal_wake_main_task_from_isr(); } TU_ATTR_FAST_FUNC void mp_usbd_schedule_task(void) {