diff options
author | Stefan Kerkmann <karlk90@pm.me> | 2022-07-29 20:13:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-29 20:13:16 +0200 |
commit | a204523bbb22d45e2968d1ded64d499b9777f37f (patch) | |
tree | ae9952a241823f1986d83d49661b79d71775e652 | |
parent | ade2eb1e751be2918b901bfe4352a71f1d54e2a2 (diff) |
[Core] RP2040 disable PIO IRQs on serial timeout (#17839)
-rw-r--r-- | platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c index 338146dadd..764764b3f9 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c @@ -206,6 +206,7 @@ static inline msg_t sync_tx(sysinterval_t timeout) { pio_set_irq0_source_enabled(pio, pis_sm0_tx_fifo_not_full + tx_state_machine, true); msg = osalThreadSuspendTimeoutS(&tx_thread, timeout); if (msg < MSG_OK) { + pio_set_irq0_source_enabled(pio, pis_sm0_tx_fifo_not_full + tx_state_machine, false); break; } } @@ -265,6 +266,7 @@ static inline msg_t sync_rx(sysinterval_t timeout) { pio_set_irq0_source_enabled(pio, pis_sm0_rx_fifo_not_empty + rx_state_machine, true); msg = osalThreadSuspendTimeoutS(&rx_thread, timeout); if (msg < MSG_OK) { + pio_set_irq0_source_enabled(pio, pis_sm0_rx_fifo_not_empty + rx_state_machine, false); break; } } |