@@ -323,8 +323,6 @@ static MFIFO_DEFINE(prep, sizeof(struct lll_event), EVENT_PIPELINE_MAX);
323
323
* - mem_done: Backing data pool for struct node_rx_event_done elements
324
324
* - mem_link_done: Pool of memq_link_t elements
325
325
*
326
- * An extra link may be reserved for use by the ull_done memq (EVENT_DONE_LINK_CNT).
327
- *
328
326
* Queue of pointers to struct node_rx_event_done.
329
327
* The actual backing behind these pointers is mem_done.
330
328
*
@@ -363,7 +361,7 @@ static MFIFO_DEFINE(prep, sizeof(struct lll_event), EVENT_PIPELINE_MAX);
363
361
#endif
364
362
365
363
static RXFIFO_DEFINE (done , sizeof (struct node_rx_event_done ),
366
- EVENT_DONE_MAX , EVENT_DONE_LINK_CNT );
364
+ EVENT_DONE_MAX , 0U );
367
365
368
366
/* Minimum number of node rx for ULL to LL/HCI thread per connection.
369
367
* Increasing this by times the max. simultaneous connection count will permit
@@ -494,9 +492,6 @@ static struct {
494
492
495
493
static MEMQ_DECLARE (ull_rx );
496
494
static MEMQ_DECLARE (ll_rx );
497
- #if !defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
498
- static MEMQ_DECLARE (ull_done );
499
- #endif /* CONFIG_BT_CTLR_LOW_LAT_ULL */
500
495
501
496
#if defined(CONFIG_BT_CONN )
502
497
static MFIFO_DEFINE (ll_pdu_rx_free , sizeof (void * ), LL_PDU_RX_CNT );
@@ -544,15 +539,12 @@ static inline void rx_demux_conn_tx_ack(uint8_t ack_last, uint16_t handle,
544
539
memq_link_t * link ,
545
540
struct node_tx * node_tx );
546
541
#endif /* CONFIG_BT_CONN || CONFIG_BT_CTLR_ADV_ISO */
547
- static inline int rx_demux_rx (memq_link_t * link , struct node_rx_hdr * rx );
542
+ static inline void rx_demux_rx (memq_link_t * link , struct node_rx_hdr * rx );
548
543
static inline void rx_demux_event_done (memq_link_t * link ,
549
544
struct node_rx_hdr * rx );
550
545
static void ll_rx_link_quota_inc (void );
551
546
static void ll_rx_link_quota_dec (void );
552
547
static void disabled_cb (void * param );
553
- #if !defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
554
- static void ull_done (void * param );
555
- #endif /* CONFIG_BT_CTLR_LOW_LAT_ULL */
556
548
557
549
int ll_init (struct k_sem * sem_rx )
558
550
{
@@ -1996,23 +1988,6 @@ void ull_rx_put_sched(memq_link_t *link, void *rx)
1996
1988
ull_rx_sched ();
1997
1989
}
1998
1990
1999
- #if !defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
2000
- void ull_rx_put_done (memq_link_t * link , void * done )
2001
- {
2002
- /* Enqueue the done object */
2003
- memq_enqueue (link , done , & memq_ull_done .tail );
2004
- }
2005
-
2006
- void ull_rx_sched_done (void )
2007
- {
2008
- static memq_link_t link ;
2009
- static struct mayfly mfy = {0 , 0 , & link , NULL , ull_done };
2010
-
2011
- /* Kick the ULL (using the mayfly, tailchain it) */
2012
- mayfly_enqueue (TICKER_USER_ID_LLL , TICKER_USER_ID_ULL_HIGH , 1 , & mfy );
2013
- }
2014
- #endif /* CONFIG_BT_CTLR_LOW_LAT_ULL */
2015
-
2016
1991
struct lll_event * ull_prepare_enqueue (lll_is_abort_cb_t is_abort_cb ,
2017
1992
lll_abort_cb_t abort_cb ,
2018
1993
struct lll_prepare_param * prepare_param ,
@@ -2185,12 +2160,7 @@ void *ull_event_done(void *param)
2185
2160
evdone -> hdr .type = NODE_RX_TYPE_EVENT_DONE ;
2186
2161
evdone -> param = param ;
2187
2162
2188
- #if !defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
2189
- ull_rx_put_done (link , evdone );
2190
- ull_rx_sched_done ();
2191
- #else
2192
2163
ull_rx_put_sched (link , evdone );
2193
- #endif /* CONFIG_BT_CTLR_LOW_LAT_ULL */
2194
2164
2195
2165
return evdone ;
2196
2166
}
@@ -2265,15 +2235,6 @@ static inline int init_reset(void)
2265
2235
/* Initialize ull rx memq */
2266
2236
MEMQ_INIT (ull_rx , link );
2267
2237
2268
- #if !defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
2269
- /* Acquire a link to initialize ull done memq */
2270
- link = mem_acquire (& mem_link_done .free );
2271
- LL_ASSERT (link );
2272
-
2273
- /* Initialize ull done memq */
2274
- MEMQ_INIT (ull_done , link );
2275
- #endif /* CONFIG_BT_CTLR_LOW_LAT_ULL */
2276
-
2277
2238
/* Acquire a link to initialize ll rx memq */
2278
2239
link = mem_acquire (& mem_link_rx .free );
2279
2240
LL_ASSERT (link );
@@ -2466,7 +2427,6 @@ static void rx_demux(void *param)
2466
2427
memq_link_t * link_tx ;
2467
2428
uint16_t handle ; /* Handle to Ack TX */
2468
2429
#endif /* CONFIG_BT_CONN */
2469
- int nack = 0 ;
2470
2430
2471
2431
LL_ASSERT (rx );
2472
2432
@@ -2479,17 +2439,11 @@ static void rx_demux(void *param)
2479
2439
} else
2480
2440
#endif /* CONFIG_BT_CONN */
2481
2441
{
2482
- nack = rx_demux_rx (link , rx );
2442
+ rx_demux_rx (link , rx );
2483
2443
}
2484
2444
2485
2445
#if defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
2486
- if (!nack ) {
2487
- rx_demux_yield ();
2488
- }
2489
- #else /* !CONFIG_BT_CTLR_LOW_LAT_ULL */
2490
- if (nack ) {
2491
- break ;
2492
- }
2446
+ rx_demux_yield ();
2493
2447
#endif /* !CONFIG_BT_CTLR_LOW_LAT_ULL */
2494
2448
2495
2449
#if defined(CONFIG_BT_CONN )
@@ -2718,43 +2672,21 @@ static inline void rx_demux_conn_tx_ack(uint8_t ack_last, uint16_t handle,
2718
2672
}
2719
2673
#endif /* CONFIG_BT_CONN || CONFIG_BT_CTLR_ADV_ISO */
2720
2674
2721
- #if !defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
2722
- static void ull_done (void * param )
2723
- {
2724
- memq_link_t * link ;
2725
- struct node_rx_hdr * done ;
2726
-
2727
- do {
2728
- link = memq_peek (memq_ull_done .head , memq_ull_done .tail ,
2729
- (void * * )& done );
2730
-
2731
- if (link ) {
2732
- /* Process done event */
2733
- (void )memq_dequeue (memq_ull_done .tail ,
2734
- & memq_ull_done .head , NULL );
2735
- rx_demux_event_done (link , done );
2736
- }
2737
- } while (link );
2738
- }
2739
- #endif /* CONFIG_BT_CTLR_LOW_LAT_ULL */
2740
-
2741
2675
/**
2742
2676
* @brief Dispatch rx objects
2743
2677
* @details Rx objects are only peeked, not dequeued yet.
2744
2678
* Execution context: ULL high priority Mayfly
2745
2679
*/
2746
- static inline int rx_demux_rx (memq_link_t * link , struct node_rx_hdr * rx )
2680
+ static inline void rx_demux_rx (memq_link_t * link , struct node_rx_hdr * rx )
2747
2681
{
2748
2682
/* Demux Rx objects */
2749
2683
switch (rx -> type ) {
2750
- #if defined(CONFIG_BT_CTLR_LOW_LAT_ULL )
2751
2684
case NODE_RX_TYPE_EVENT_DONE :
2752
2685
{
2753
2686
(void )memq_dequeue (memq_ull_rx .tail , & memq_ull_rx .head , NULL );
2754
2687
rx_demux_event_done (link , rx );
2755
2688
}
2756
2689
break ;
2757
- #endif /* CONFIG_BT_CTLR_LOW_LAT_ULL */
2758
2690
2759
2691
#if defined(CONFIG_BT_OBSERVER )
2760
2692
#if defined(CONFIG_BT_CTLR_ADV_EXT )
@@ -2837,12 +2769,7 @@ static inline int rx_demux_rx(memq_link_t *link, struct node_rx_hdr *rx)
2837
2769
2838
2770
case NODE_RX_TYPE_DC_PDU :
2839
2771
{
2840
- int nack ;
2841
-
2842
- nack = ull_conn_rx (link , (void * )& rx );
2843
- if (nack ) {
2844
- return nack ;
2845
- }
2772
+ ull_conn_rx (link , (void * )& rx );
2846
2773
2847
2774
(void )memq_dequeue (memq_ull_rx .tail , & memq_ull_rx .head , NULL );
2848
2775
@@ -2922,8 +2849,6 @@ static inline int rx_demux_rx(memq_link_t *link, struct node_rx_hdr *rx)
2922
2849
}
2923
2850
break ;
2924
2851
}
2925
-
2926
- return 0 ;
2927
2852
}
2928
2853
2929
2854
static inline void rx_demux_event_done (memq_link_t * link ,
0 commit comments