diff --git a/features/lorawan/lorastack/mac/LoRaMac.cpp b/features/lorawan/lorastack/mac/LoRaMac.cpp index 8cf87978c8..1b98bd39e1 100644 --- a/features/lorawan/lorastack/mac/LoRaMac.cpp +++ b/features/lorawan/lorastack/mac/LoRaMac.cpp @@ -868,12 +868,8 @@ void LoRaMac::open_rx1_window(void) _mcps_indication.rx_datarate = _params.rx_window1_config.datarate; - if (_lora_phy.rx_config(&_params.rx_window1_config)) { - _lora_phy.handle_receive(); - } else { - tr_error("Receive failed. Radio is not IDLE"); - return; - } + _lora_phy.rx_config(&_params.rx_window1_config); + _lora_phy.handle_receive(); tr_debug("Opening RX1 Window"); } @@ -888,8 +884,6 @@ void LoRaMac::open_rx2_window() _params.rx_window2_config.frequency = _params.sys_params.rx2_channel.frequency; _params.rx_window2_config.dl_dwell_time = _params.sys_params.downlink_dwell_time; _params.rx_window2_config.is_repeater_supported = _params.is_repeater_supported; - _params.rx_window2_config.rx_slot = _params.rx_window2_config.is_rx_continuous ? - RX_SLOT_WIN_CLASS_C : RX_SLOT_WIN_2; if (get_device_class() == CLASS_C) { _params.rx_window2_config.is_rx_continuous = true; @@ -897,15 +891,14 @@ void LoRaMac::open_rx2_window() _params.rx_window2_config.is_rx_continuous = false; } + _params.rx_window2_config.rx_slot = _params.rx_window2_config.is_rx_continuous ? + RX_SLOT_WIN_CLASS_C : RX_SLOT_WIN_2; + _mcps_indication.rx_datarate = _params.rx_window2_config.datarate; - if (_lora_phy.rx_config(&_params.rx_window2_config)) { - _lora_phy.handle_receive(); - _params.rx_slot = _params.rx_window2_config.rx_slot; - } else { - tr_error("Receive failed. Radio is not IDLE"); - return; - } + _lora_phy.rx_config(&_params.rx_window2_config); + _lora_phy.handle_receive(); + _params.rx_slot = _params.rx_window2_config.rx_slot; tr_debug("Opening RX2 Window, Frequency = %lu", _params.rx_window2_config.frequency); } diff --git a/features/lorawan/lorastack/phy/LoRaPHY.cpp b/features/lorawan/lorastack/phy/LoRaPHY.cpp index 438c9e8c5e..ed1f8a543b 100644 --- a/features/lorawan/lorastack/phy/LoRaPHY.cpp +++ b/features/lorawan/lorastack/phy/LoRaPHY.cpp @@ -813,15 +813,6 @@ bool LoRaPHY::rx_config(rx_config_params_t *rx_conf) uint8_t phy_dr = 0; uint32_t frequency = rx_conf->frequency; - _radio->lock(); - - if (_radio->get_status() != RF_IDLE) { - _radio->unlock(); - return false; - } - - _radio->unlock(); - if (rx_conf->rx_slot == RX_SLOT_WIN_1) { // Apply window 1 frequency frequency = phy_params.channels.channel_list[rx_conf->channel].frequency;