@@ -71,6 +71,7 @@ uint8_t ll_create_connection(uint16_t scan_interval, uint16_t scan_window,
7171 struct lll_conn * conn_lll ;
7272 struct ll_scan_set * scan ;
7373 uint32_t conn_interval_us ;
74+ uint32_t ready_delay_us ;
7475 struct lll_scan * lll ;
7576 struct ll_conn * conn ;
7677 memq_link_t * link ;
@@ -291,6 +292,24 @@ uint8_t ll_create_connection(uint16_t scan_interval, uint16_t scan_window,
291292 conn -> tx_head = conn -> tx_ctrl = conn -> tx_ctrl_last =
292293 conn -> tx_data = conn -> tx_data_last = 0 ;
293294
295+ #if defined(CONFIG_BT_CTLR_PHY )
296+ ready_delay_us = lll_radio_tx_ready_delay_get (conn_lll -> phy_tx ,
297+ conn_lll -> phy_flags );
298+ #else
299+ ready_delay_us = lll_radio_tx_ready_delay_get (0 , 0 );
300+ #endif
301+
302+ /* TODO: active_to_start feature port */
303+ conn -> evt .ticks_active_to_start = 0U ;
304+ conn -> evt .ticks_xtal_to_start =
305+ HAL_TICKER_US_TO_TICKS (EVENT_OVERHEAD_XTAL_US );
306+ conn -> evt .ticks_preempt_to_start =
307+ HAL_TICKER_US_TO_TICKS (EVENT_OVERHEAD_PREEMPT_MIN_US );
308+ conn -> evt .ticks_slot =
309+ HAL_TICKER_US_TO_TICKS (EVENT_OVERHEAD_START_US +
310+ ready_delay_us +
311+ 328 + EVENT_IFS_US + 328 );
312+
294313 lll -> conn = conn_lll ;
295314
296315 ull_hdr_init (& conn -> ull );
@@ -546,7 +565,6 @@ void ull_master_setup(memq_link_t *link, struct node_rx_hdr *rx,
546565 struct pdu_adv * pdu_tx ;
547566 struct node_rx_cc * cc ;
548567 struct ll_conn * conn ;
549- uint32_t ready_delay_us ;
550568 uint8_t peer_addr_type ;
551569 uint32_t ticker_status ;
552570 uint8_t chan_sel ;
@@ -648,24 +666,6 @@ void ull_master_setup(memq_link_t *link, struct node_rx_hdr *rx,
648666 ll_rx_put (link , rx );
649667 ll_rx_sched ();
650668
651- #if defined(CONFIG_BT_CTLR_PHY )
652- ready_delay_us = lll_radio_tx_ready_delay_get (lll -> phy_tx ,
653- lll -> phy_flags );
654- #else
655- ready_delay_us = lll_radio_tx_ready_delay_get (0 , 0 );
656- #endif
657-
658- /* TODO: active_to_start feature port */
659- conn -> evt .ticks_active_to_start = 0U ;
660- conn -> evt .ticks_xtal_to_start =
661- HAL_TICKER_US_TO_TICKS (EVENT_OVERHEAD_XTAL_US );
662- conn -> evt .ticks_preempt_to_start =
663- HAL_TICKER_US_TO_TICKS (EVENT_OVERHEAD_PREEMPT_MIN_US );
664- conn -> evt .ticks_slot =
665- HAL_TICKER_US_TO_TICKS (EVENT_OVERHEAD_START_US +
666- ready_delay_us +
667- 328 + EVENT_IFS_US + 328 );
668-
669669 ticks_slot_offset = MAX (conn -> evt .ticks_active_to_start ,
670670 conn -> evt .ticks_xtal_to_start );
671671
@@ -679,7 +679,14 @@ void ull_master_setup(memq_link_t *link, struct node_rx_hdr *rx,
679679 conn_offset_us = ftr -> radio_end_us ;
680680 conn_offset_us += HAL_TICKER_TICKS_TO_US (1 );
681681 conn_offset_us -= EVENT_OVERHEAD_START_US ;
682- conn_offset_us -= ready_delay_us ;
682+
683+ #if defined(CONFIG_BT_CTLR_PHY )
684+ conn_offset_us -= lll_radio_tx_ready_delay_get (lll -> phy_tx ,
685+ lll -> phy_flags );
686+ #else
687+ conn_offset_us -= lll_radio_tx_ready_delay_get (0 , 0 );
688+ #endif
689+
683690
684691#if (CONFIG_BT_CTLR_ULL_HIGH_PRIO == CONFIG_BT_CTLR_ULL_LOW_PRIO )
685692 /* disable ticker job, in order to chain stop and start to avoid RTC
0 commit comments