@@ -380,6 +380,15 @@ static bool csma_ca_can_abort(nrf_802154_term_t term_lvl,
380380 return result ;
381381}
382382
383+ static void csma_ca_finish_failed (uint8_t * p_frame ,
384+ nrf_802154_tx_error_t error ,
385+ const nrf_802154_transmit_done_metadata_t * p_metadata )
386+ {
387+ nrf_802154_sl_atomic_store_u8 ((uint8_t * )& m_state , CSMA_CA_STATE_IDLE );
388+ nrf_802154_frame_parser_data_clear (& m_frame );
389+ nrf_802154_notify_transmit_failed (p_frame , error , p_metadata );
390+ }
391+
383392static void csma_ca_failed (uint8_t * p_frame ,
384393 nrf_802154_tx_error_t error ,
385394 const nrf_802154_transmit_done_metadata_t * p_metadata ,
@@ -396,18 +405,12 @@ static void csma_ca_failed(uint8_t * p_frame,
396405 case NRF_802154_TX_ERROR_TIMESLOT_ENDED :
397406 if (channel_busy ())
398407 {
399- nrf_802154_sl_atomic_store_u8 ((uint8_t * )& m_state , CSMA_CA_STATE_IDLE );
400- nrf_802154_frame_parser_data_clear (& m_frame );
401- nrf_802154_notify_transmit_failed (p_frame ,
402- NRF_802154_TX_ERROR_BUSY_CHANNEL ,
403- p_metadata );
408+ csma_ca_finish_failed (p_frame , error , p_metadata );
404409 }
405410 break ;
406411
407412 default :
408- nrf_802154_sl_atomic_store_u8 ((uint8_t * )& m_state , CSMA_CA_STATE_IDLE );
409- nrf_802154_frame_parser_data_clear (& m_frame );
410- nrf_802154_notify_transmit_failed (p_frame , error , p_metadata );
413+ csma_ca_finish_failed (p_frame , error , p_metadata );
411414 break ;
412415 }
413416
0 commit comments