Lines Matching refs:fifo
786 int fifo) in brcmf_fws_macdesc_closed() argument
806 return closed || !(entry->ac_bitmap & BIT(fifo)); in brcmf_fws_macdesc_closed()
924 int fifo, bool send_immediately) in brcmf_fws_tim_update() argument
934 if (brcmu_pktq_mlen(&entry->psq, 3 << (fifo * 2)) == 0) in brcmf_fws_tim_update()
935 entry->traffic_pending_bmp &= ~NBITVAL(fifo); in brcmf_fws_tim_update()
937 entry->traffic_pending_bmp |= NBITVAL(fifo); in brcmf_fws_tim_update()
1196 u8 fifo, u8 credits) in brcmf_fws_return_credits() argument
1205 fws->fifo_credit_map |= 1 << fifo; in brcmf_fws_return_credits()
1207 if ((fifo == BRCMF_FWS_FIFO_AC_BE) && in brcmf_fws_return_credits()
1228 fws->fifo_credit[fifo] += credits; in brcmf_fws_return_credits()
1240 enum brcmf_fws_skb_state state, int fifo, in brcmf_fws_enq() argument
1243 int prec = 2 * fifo; in brcmf_fws_enq()
1259 brcmf_dbg(DATA, "enter: fifo %d skb %p\n", fifo, p); in brcmf_fws_enq()
1317 fws->fifo_delay_map |= 1 << fifo; in brcmf_fws_enq()
1318 fws->fifo_enqpkt[fifo]++; in brcmf_fws_enq()
1327 brcmf_fws_tim_update(fws, entry, fifo, true); in brcmf_fws_enq()
1333 static struct sk_buff *brcmf_fws_deq(struct brcmf_fws_info *fws, int fifo) in brcmf_fws_deq() argument
1346 node_pos = fws->deq_node_pos[fifo]; in brcmf_fws_deq()
1351 brcmf_fws_macdesc_closed(fws, entry, fifo)) in brcmf_fws_deq()
1358 p = brcmu_pktq_mdeq(&entry->psq, pmsk << (fifo * 2), &prec_out); in brcmf_fws_deq()
1365 1 << (fifo * 2), &prec_out); in brcmf_fws_deq()
1374 fws->deq_node_pos[fifo] = (node_pos + i + 1) % num_nodes; in brcmf_fws_deq()
1383 brcmf_fws_tim_update(fws, entry, fifo, false); in brcmf_fws_deq()
1389 fws->fifo_enqpkt[fifo]--; in brcmf_fws_deq()
1390 if (fws->fifo_enqpkt[fifo] == 0) in brcmf_fws_deq()
1391 fws->fifo_delay_map &= ~(1 << fifo); in brcmf_fws_deq()
1396 brcmf_dbg(DATA, "exit: fifo %d skb %p\n", fifo, p); in brcmf_fws_deq()
1400 static int brcmf_fws_txstatus_suppressed(struct brcmf_fws_info *fws, int fifo, in brcmf_fws_txstatus_suppressed() argument
1428 ret = brcmf_fws_enq(fws, BRCMF_FWS_SKBSTATE_SUPPRESSED, fifo, skb); in brcmf_fws_txstatus_suppressed()
1445 u32 fifo; in brcmf_fws_txs_process() local
1491 fifo = brcmf_skb_htod_tag_get_field(skb, FIFO); in brcmf_fws_txs_process()
1495 brcmf_fws_return_credits(fws, fifo, 1); in brcmf_fws_txs_process()
1506 ret = brcmf_fws_txstatus_suppressed(fws, fifo, skb, in brcmf_fws_txs_process()
1741 static u8 brcmf_fws_precommit_skb(struct brcmf_fws_info *fws, int fifo, in brcmf_fws_precommit_skb() argument
1763 struct sk_buff *skb, int fifo) in brcmf_fws_rollback_toq() argument
1772 qidx = 2 * fifo; in brcmf_fws_rollback_toq()
1793 brcmf_fws_return_credits(fws, fifo, 1); in brcmf_fws_rollback_toq()
1822 static int brcmf_fws_commit_skb(struct brcmf_fws_info *fws, int fifo, in brcmf_fws_commit_skb() argument
1835 data_offset = brcmf_fws_precommit_skb(fws, fifo, skb); in brcmf_fws_commit_skb()
1854 fws->stats.send_pkts[fifo]++; in brcmf_fws_commit_skb()
1856 fws->stats.requested_sent[fifo]++; in brcmf_fws_commit_skb()
1861 brcmf_fws_rollback_toq(fws, skb, fifo); in brcmf_fws_commit_skb()
1866 int fifo) in brcmf_fws_assign_htod() argument
1875 brcmf_skb_htod_tag_set_field(p, FREERUN, skcb->mac->seq[fifo]); in brcmf_fws_assign_htod()
1876 brcmf_skb_htod_tag_set_field(p, FIFO, fifo); in brcmf_fws_assign_htod()
1879 skcb->mac->seq[fifo]++; in brcmf_fws_assign_htod()
1891 int fifo = BRCMF_FWS_FIFO_BCMC; in brcmf_fws_process_skb() local
1914 fifo = brcmf_fws_prio2fifo[skb->priority]; in brcmf_fws_process_skb()
1917 if (fifo != BRCMF_FWS_FIFO_AC_BE && fifo < BRCMF_FWS_FIFO_BCMC) in brcmf_fws_process_skb()
1923 eh->h_dest, multicast, fifo); in brcmf_fws_process_skb()
1924 if (!brcmf_fws_assign_htod(fws, skb, fifo)) { in brcmf_fws_process_skb()
1925 brcmf_fws_enq(fws, BRCMF_FWS_SKBSTATE_DELAYED, fifo, skb); in brcmf_fws_process_skb()
1985 int fifo; in brcmf_fws_dequeue_worker() local
1994 for (fifo = BRCMF_FWS_FIFO_BCMC; fifo >= 0 && !fws->bus_flow_blocked; in brcmf_fws_dequeue_worker()
1995 fifo--) { in brcmf_fws_dequeue_worker()
1997 while ((skb = brcmf_fws_deq(fws, fifo)) != NULL) { in brcmf_fws_dequeue_worker()
2017 while ((fws->fifo_credit[fifo]) || ((!fws->bcmc_credit_check) && in brcmf_fws_dequeue_worker()
2018 (fifo == BRCMF_FWS_FIFO_BCMC))) { in brcmf_fws_dequeue_worker()
2019 skb = brcmf_fws_deq(fws, fifo); in brcmf_fws_dequeue_worker()
2022 fws->fifo_credit[fifo]--; in brcmf_fws_dequeue_worker()
2023 if (brcmf_fws_commit_skb(fws, fifo, skb)) in brcmf_fws_dequeue_worker()
2028 if ((fifo == BRCMF_FWS_FIFO_AC_BE) && in brcmf_fws_dequeue_worker()
2029 (fws->fifo_credit[fifo] == 0) && in brcmf_fws_dequeue_worker()
2032 skb = brcmf_fws_deq(fws, fifo); in brcmf_fws_dequeue_worker()
2034 brcmf_fws_return_credits(fws, fifo, 1); in brcmf_fws_dequeue_worker()
2037 if (brcmf_fws_commit_skb(fws, fifo, skb)) in brcmf_fws_dequeue_worker()