mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 03:20:25 -04:00
brcmfmac: rename brcmf_fws_mac_desc_ready()
Replace the function by brcmf_fws_mac_desc_closed(). The new function is used in the transmit path and in the dequeue worker. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
f97a7f06b8
commit
9fc60224ba
@@ -714,26 +714,19 @@ brcmf_fws_find_mac_desc(struct brcmf_fws_info *fws, struct brcmf_if *ifp,
|
||||
return entry;
|
||||
}
|
||||
|
||||
static bool brcmf_fws_mac_desc_ready(struct brcmf_fws_mac_descriptor *entry,
|
||||
int fifo)
|
||||
static bool brcmf_fws_mac_desc_closed(struct brcmf_fws_mac_descriptor *entry,
|
||||
int fifo)
|
||||
{
|
||||
bool ready;
|
||||
bool closed;
|
||||
|
||||
/*
|
||||
* destination entry is ready when firmware says it is OPEN
|
||||
* and there are no packets enqueued for it.
|
||||
/* an entry is closed when the state is closed and
|
||||
* the firmware did not request anything.
|
||||
*/
|
||||
ready = entry->state == BRCMF_FWS_STATE_OPEN &&
|
||||
!entry->suppressed &&
|
||||
brcmu_pktq_mlen(&entry->psq, 3 << (fifo * 2)) == 0;
|
||||
closed = entry->state == BRCMF_FWS_STATE_CLOSE &&
|
||||
!entry->requested_credit && !entry->requested_packet;
|
||||
|
||||
/*
|
||||
* Or when the destination entry is CLOSED, but firmware has
|
||||
* specifically requested packets for this entry.
|
||||
*/
|
||||
ready = ready || (entry->state == BRCMF_FWS_STATE_CLOSE &&
|
||||
(entry->requested_credit + entry->requested_packet));
|
||||
return ready;
|
||||
/* Or firmware does not allow traffic for given fifo */
|
||||
return closed || !(entry->ac_bitmap & BIT(fifo));
|
||||
}
|
||||
|
||||
static void brcmf_fws_mac_desc_cleanup(struct brcmf_fws_info *fws,
|
||||
@@ -1086,7 +1079,7 @@ static struct sk_buff *brcmf_fws_deq(struct brcmf_fws_info *fws, int fifo)
|
||||
|
||||
for (i = 0; i < num_nodes; i++) {
|
||||
entry = &table[(node_pos + i) % num_nodes];
|
||||
if (!entry->occupied)
|
||||
if (!entry->occupied || brcmf_fws_mac_desc_closed(entry, fifo))
|
||||
continue;
|
||||
|
||||
if (entry->suppressed)
|
||||
@@ -1758,7 +1751,9 @@ int brcmf_fws_process_skb(struct brcmf_if *ifp, struct sk_buff *skb)
|
||||
multicast, fifo);
|
||||
|
||||
brcmf_fws_lock(drvr, flags);
|
||||
if (!brcmf_fws_mac_desc_ready(skcb->mac, fifo) ||
|
||||
if (skcb->mac->suppressed ||
|
||||
brcmf_fws_mac_desc_closed(skcb->mac, fifo) ||
|
||||
brcmu_pktq_mlen(&skcb->mac->psq, 3 << (fifo * 2)) ||
|
||||
(!multicast &&
|
||||
brcmf_fws_consume_credit(drvr->fws, fifo, skb) < 0)) {
|
||||
/* enqueue the packet in delayQ */
|
||||
|
||||
Reference in New Issue
Block a user