~ruther/qmk_firmware

a204523bbb22d45e2968d1ded64d499b9777f37f — Stefan Kerkmann 3 years ago ade2eb1
[Core] RP2040 disable PIO IRQs on serial timeout (#17839)

1 files changed, 2 insertions(+), 0 deletions(-)

M platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c
M platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c => platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c +2 -0
@@ 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;
        }
    }