diff --git a/src/core/mac/sub_mac.cpp b/src/core/mac/sub_mac.cpp index 6e0c11bad..e8169f8f3 100644 --- a/src/core/mac/sub_mac.cpp +++ b/src/core/mac/sub_mac.cpp @@ -163,14 +163,18 @@ void SubMac::SetRxOnWhenIdle(bool aRxOnWhenIdle) { mRxOnWhenIdle = aRxOnWhenIdle; - if (RadioSupports(kCapRxOnWhenIdle)) - { -#if !OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE - Get().SetRxOnWhenIdle(mRxOnWhenIdle); -#endif - } + LogDebg("RxOnWhenIdle: %u", mRxOnWhenIdle); - LogDebg("RxOnWhenIdle: %d", mRxOnWhenIdle); +#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE && OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE + // Keep radio rx-on-when-idle enabled for debugging when `MAC_CSL_DEBUG_ENABLE`. + ExitNow(); +#endif + + VerifyOrExit(RadioSupports(kCapRxOnWhenIdle)); + Get().SetRxOnWhenIdle(mRxOnWhenIdle); + +exit: + return; } Error SubMac::Enable(void) @@ -981,12 +985,15 @@ void SubMac::RadioSample(void) ExitNow(); } -#if !OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE +#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE && OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE + // Don't sleep for debugging when `MAC_CSL_DEBUG_ENABLE`. + ExitNow(); +#endif + if (!RadioSupports(kCapRxOnWhenIdle)) { IgnoreError(Get().Sleep()); } -#endif exit: return; @@ -1056,10 +1063,13 @@ void SubMac::UpdateRadioSampleState(void) } #endif -#if !OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE - IgnoreError(Get().Sleep()); // Don't actually sleep for debugging +#if OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE && OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE + // Don't sleep for debugging when `MAC_CSL_DEBUG_ENABLE`. + ExitNow(); #endif + IgnoreError(Get().Sleep()); + exit: return; } diff --git a/src/core/mac/sub_mac.hpp b/src/core/mac/sub_mac.hpp index b728e4ccf..d3a286780 100644 --- a/src/core/mac/sub_mac.hpp +++ b/src/core/mac/sub_mac.hpp @@ -91,10 +91,6 @@ namespace Mac { #endif -#if OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE && !OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE -#error "OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE is required for OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE." -#endif - //---------------------------------------------------------------------------------------------------------------------- #if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE diff --git a/src/core/mac/sub_mac_csl_receiver.cpp b/src/core/mac/sub_mac_csl_receiver.cpp index 9a3643806..d165e3d51 100644 --- a/src/core/mac/sub_mac_csl_receiver.cpp +++ b/src/core/mac/sub_mac_csl_receiver.cpp @@ -360,7 +360,7 @@ void SubMac::LogReceived(RxFrame *aFrame) exit: return; } -#endif +#endif // OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE } // namespace Mac } // namespace ot