Bluetooth: Controller: Fix RX_ENQUEUE_HOLD for LOW_LAT_ULL

Fix BT_CTLR_RX_ENQUEUE_HOLD implementation that stalled
generating the CONN_UPDATE and PHY_UPDATE when there were
no Rx data or Tx acknowledgements to be processed when
the controller was built with BT_CTLR_LOW_LAT_ULL.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2022-05-22 13:44:13 +05:30 committed by Carles Cufí
commit 1578dc699b

View file

@ -1398,12 +1398,12 @@ void ull_conn_done(struct node_rx_event_done *done)
if (conn->llcp_rx_hold && rx_hold_is_done(conn)) { if (conn->llcp_rx_hold && rx_hold_is_done(conn)) {
rx_hold_flush(conn); rx_hold_flush(conn);
#if !defined(CONFIG_BT_CTLR_LOW_LAT_ULL) /* For both CONFIG_BT_CTLR_LOW_LAT_ULL or when done events have
/* if done events have separate mayfly, explicit trigger of * separate mayfly, explicitly trigger rx_demux mayfly. In the
* rx_demux mayfly is necessary. * later we could be here without any node rx or tx ack being
* processed hence an explicit ll_rx_sched call is necessary.
*/ */
ll_rx_sched(); ll_rx_sched();
#endif /* !CONFIG_BT_CTLR_LOW_LAT_ULL */
} }
#endif /* CONFIG_BT_CTLR_RX_ENQUEUE_HOLD */ #endif /* CONFIG_BT_CTLR_RX_ENQUEUE_HOLD */