diff --git a/ports/raspberrypi/common-hal/busio/SPI.c b/ports/raspberrypi/common-hal/busio/SPI.c index 23030cbd0d..ab295c4ff1 100644 --- a/ports/raspberrypi/common-hal/busio/SPI.c +++ b/ports/raspberrypi/common-hal/busio/SPI.c @@ -212,15 +212,6 @@ static bool _transfer(busio_spi_obj_t *self, while (dma_channel_is_busy(chan_rx) || dma_channel_is_busy(chan_tx)) { // TODO: We should idle here until we get a DMA interrupt or something else. RUN_BACKGROUND_TASKS; - if (mp_hal_is_interrupted()) { - if (dma_channel_is_busy(chan_rx)) { - dma_channel_abort(chan_rx); - } - if (dma_channel_is_busy(chan_tx)) { - dma_channel_abort(chan_tx); - } - break; - } } } @@ -233,7 +224,7 @@ static bool _transfer(busio_spi_obj_t *self, dma_channel_unclaim(chan_tx); } - if (!use_dma && !mp_hal_is_interrupted()) { + if (!use_dma) { // Use software for small transfers, or if couldn't claim two DMA channels // Never have more transfers in flight than will fit into the RX FIFO, // else FIFO will overflow if this code is heavily interrupted. @@ -241,7 +232,7 @@ static bool _transfer(busio_spi_obj_t *self, size_t rx_remaining = len; size_t tx_remaining = len; - while (!mp_hal_is_interrupted() && (rx_remaining || tx_remaining)) { + while (rx_remaining || tx_remaining) { if (tx_remaining && spi_is_writable(self->peripheral) && rx_remaining - tx_remaining < fifo_depth) { spi_get_hw(self->peripheral)->dr = (uint32_t)*data_out; // Increment only if the buffer is the transfer length. It's 1 otherwise. diff --git a/ports/raspberrypi/common-hal/rp2pio/StateMachine.c b/ports/raspberrypi/common-hal/rp2pio/StateMachine.c index ab70a27fcd..887ea8e644 100644 --- a/ports/raspberrypi/common-hal/rp2pio/StateMachine.c +++ b/ports/raspberrypi/common-hal/rp2pio/StateMachine.c @@ -654,15 +654,6 @@ static bool _transfer(rp2pio_statemachine_obj_t *self, (tx && dma_channel_is_busy(chan_tx))) { // TODO: We should idle here until we get a DMA interrupt or something else. RUN_BACKGROUND_TASKS; - if (mp_hal_is_interrupted()) { - if (rx && dma_channel_is_busy(chan_rx)) { - dma_channel_abort(chan_rx); - } - if (tx && dma_channel_is_busy(chan_tx)) { - dma_channel_abort(chan_tx); - } - break; - } } // Clear the stall bit so we can detect when the state machine is done transmitting. self->pio->fdebug = stall_mask; @@ -677,7 +668,7 @@ static bool _transfer(rp2pio_statemachine_obj_t *self, dma_channel_unclaim(chan_tx); } - if (!use_dma && !mp_hal_is_interrupted()) { + if (!use_dma) { // Use software for small transfers, or if couldn't claim two DMA channels size_t rx_remaining = in_len / in_stride_in_bytes; size_t tx_remaining = out_len / out_stride_in_bytes; @@ -706,9 +697,6 @@ static bool _transfer(rp2pio_statemachine_obj_t *self, --rx_remaining; } RUN_BACKGROUND_TASKS; - if (mp_hal_is_interrupted()) { - break; - } } // Clear the stall bit so we can detect when the state machine is done transmitting. self->pio->fdebug = stall_mask; @@ -719,9 +707,6 @@ static bool _transfer(rp2pio_statemachine_obj_t *self, while (!pio_sm_is_tx_fifo_empty(self->pio, self->state_machine) || (self->wait_for_txstall && (self->pio->fdebug & stall_mask) == 0)) { RUN_BACKGROUND_TASKS; - if (mp_hal_is_interrupted()) { - break; - } } } return true;