From d43cb26b8ee0a77db5283fa9fbeca84aa781231c Mon Sep 17 00:00:00 2001 From: Dominic Clifton Date: Mon, 7 Mar 2022 15:28:53 +0100 Subject: [PATCH] ELRS/SX127x - Cleanup NVIC/atomic block usage. Since #11380 the sx127xISR will always be called from an ISR handler so no additional NVIC entry or ATOMIC_BLOCK is required. Also, since sx127xISR is always called from an ISR handler it means that there's no need to call rxSpiPollExti. --- src/main/drivers/rx/rx_sx127x.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/main/drivers/rx/rx_sx127x.c b/src/main/drivers/rx/rx_sx127x.c index 99172191f7..e85fc20986 100644 --- a/src/main/drivers/rx/rx_sx127x.c +++ b/src/main/drivers/rx/rx_sx127x.c @@ -76,27 +76,16 @@ static bool sx127xDetectChip(void) uint8_t sx127xISR(timeUs_t *timeStamp) { - bool extiTriggered = false; - timeUs_t extiTimestamp; + timeUs_t extiTimestamp = rxSpiGetLastExtiTimeUs(); - ATOMIC_BLOCK(NVIC_PRIO_RX_SPI_INT_EXTI) { - // prevent a data-race that can occur if a new EXTI ISR occurs during this block. - extiTriggered = rxSpiPollExti(); - extiTimestamp = rxSpiGetLastExtiTimeUs(); - if (extiTriggered) { - rxSpiResetExti(); - } + rxSpiResetExti(); + + uint8_t irqReason = sx127xGetIrqReason(); + if (extiTimestamp) { + *timeStamp = extiTimestamp; } - if (extiTriggered) { - uint8_t irqReason = sx127xGetIrqReason(); - if (extiTimestamp) { - *timeStamp = extiTimestamp; - } - - return irqReason; - } - return 0; + return irqReason; } bool sx127xInit(IO_t resetPin, IO_t busyPin)