From 2a8cc882624ae0985aa52bc4b9613769fad496a3 Mon Sep 17 00:00:00 2001 From: liquidraver <504870+liquidraver@users.noreply.github.com> Date: Thu, 7 May 2026 11:37:09 +0200 Subject: [PATCH] fix fast path LBT CAD mode --- zephcore/adapters/radio/LoRaRadioBase.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/zephcore/adapters/radio/LoRaRadioBase.cpp b/zephcore/adapters/radio/LoRaRadioBase.cpp index d0d7a66..7b6983a 100644 --- a/zephcore/adapters/radio/LoRaRadioBase.cpp +++ b/zephcore/adapters/radio/LoRaRadioBase.cpp @@ -229,10 +229,12 @@ void LoRaRadioBase::buildModemConfig(struct lora_modem_config &cfg, bool tx) cfg.public_network = false; cfg.packet_crc_disable = false; - /* LBT: driver performs hardware CAD before TX, returns -EBUSY if busy */ - if (tx) { - cfg.cad.mode = LORA_CAD_MODE_LBT; - } + /* LBT: driver gates send_async on cad.mode == LBT. + * Set unconditionally so the value reaches the driver via the + * initial RX lora_config() call and survives configureTx()'s + * direction-only fast path (which skips hwConfigure). RX paths + * never read cad.mode, so this is harmless during receive. */ + cfg.cad.mode = LORA_CAD_MODE_LBT; } /**