bluetooth: controller: Added function to support RX link quota update
Added ll_rx_link_inc_quota to allow vendor to manipulate mem_link_rx.quota_pdu when cleaning up nodes via ull_vendor.h. Signed-off-by: Morten Priess <mtpr@oticon.com>
This commit is contained in:
parent
07b942f689
commit
d62ad4117c
1 changed files with 11 additions and 7 deletions
|
@ -211,6 +211,7 @@ static void rx_demux(void *param);
|
|||
static inline int rx_demux_rx(memq_link_t *link, struct node_rx_hdr *rx);
|
||||
static inline void rx_demux_event_done(memq_link_t *link,
|
||||
struct node_rx_hdr *rx);
|
||||
static inline void ll_rx_link_inc_quota(int8_t delta);
|
||||
static void disabled_cb(void *param);
|
||||
|
||||
#if defined(CONFIG_BT_CONN)
|
||||
|
@ -431,8 +432,7 @@ ll_rx_get_again:
|
|||
&memq_ll_rx.head, NULL);
|
||||
mem_release(link, &mem_link_rx.free);
|
||||
|
||||
LL_ASSERT(mem_link_rx.quota_pdu < RX_CNT);
|
||||
mem_link_rx.quota_pdu++;
|
||||
ll_rx_link_inc_quota(1);
|
||||
|
||||
mem_release(rx, &mem_pdu_rx.free);
|
||||
|
||||
|
@ -556,9 +556,7 @@ void ll_rx_dequeue(void)
|
|||
* since prio_recv_thread() peeked in memq_ll_rx via
|
||||
* ll_rx_get() before.
|
||||
*/
|
||||
LL_ASSERT(mem_link_rx.quota_pdu < RX_CNT);
|
||||
|
||||
mem_link_rx.quota_pdu++;
|
||||
ll_rx_link_inc_quota(1);
|
||||
break;
|
||||
#endif /* CONFIG_BT_OBSERVER ||
|
||||
* CONFIG_BT_CTLR_SCAN_REQ_NOTIFY ||
|
||||
|
@ -820,6 +818,12 @@ void ll_rx_mem_release(void **node_rx)
|
|||
rx_alloc(UINT8_MAX);
|
||||
}
|
||||
|
||||
static inline void ll_rx_link_inc_quota(int8_t delta)
|
||||
{
|
||||
LL_ASSERT(delta <= 0 || mem_link_rx.quota_pdu < RX_CNT);
|
||||
mem_link_rx.quota_pdu += delta;
|
||||
}
|
||||
|
||||
void *ll_rx_link_alloc(void)
|
||||
{
|
||||
return mem_acquire(&mem_link_rx.free);
|
||||
|
@ -1263,7 +1267,7 @@ static inline void rx_alloc(u8_t max)
|
|||
|
||||
MFIFO_BY_IDX_ENQUEUE(ll_pdu_rx_free, idx, rx);
|
||||
|
||||
mem_link_rx.quota_pdu--;
|
||||
ll_rx_link_inc_quota(-1);
|
||||
}
|
||||
#endif /* CONFIG_BT_CONN */
|
||||
|
||||
|
@ -1290,7 +1294,7 @@ static inline void rx_alloc(u8_t max)
|
|||
|
||||
MFIFO_BY_IDX_ENQUEUE(pdu_rx_free, idx, rx);
|
||||
|
||||
mem_link_rx.quota_pdu--;
|
||||
ll_rx_link_inc_quota(-1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue