From ec1dc66f9b897476ee69c5dcff26be97b837c32a Mon Sep 17 00:00:00 2001 From: "Morgan 'ARR\\!' Allen" Date: Fri, 13 Mar 2026 15:05:11 -0700 Subject: [PATCH] acquiring bus in the dio task seems to result in the double release. additional locking was added which could also help with the situation --- main/esp32-lora.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/esp32-lora.c b/main/esp32-lora.c index 8d08d8b..6abf405 100644 --- a/main/esp32-lora.c +++ b/main/esp32-lora.c @@ -416,7 +416,7 @@ static void IRAM_ATTR lora32_dio_task(void *arg) { // wait for event over Queue if(xQueueReceive(dio_event_queue, (void*)&lora, portMAX_DELAY) != pdPASS) continue; - spi_device_acquire_bus(lora->spi, portMAX_DELAY); + //spi_device_acquire_bus(lora->spi, portMAX_DELAY); // read IRQ flags uint8_t irqs = lora32_read_reg(lora, REG_IRQ_FLAGS); @@ -426,7 +426,7 @@ static void IRAM_ATTR lora32_dio_task(void *arg) { ESP_LOGD(TAG, "clearing irqs"); lora32_write_reg(lora, REG_IRQ_FLAGS, irqs); - spi_device_release_bus(lora->spi); + //spi_device_release_bus(lora->spi); // TODO handle header validation if((irqs & IRQ_RX_DONE) == IRQ_RX_DONE) {