fws 119 drivers/irqchip/qcom-irq-combiner.c static int combiner_irq_translate(struct irq_domain *d, struct irq_fwspec *fws, fws 124 drivers/irqchip/qcom-irq-combiner.c if (is_acpi_node(fws->fwnode)) { fws 125 drivers/irqchip/qcom-irq-combiner.c if (WARN_ON((fws->param_count != 2) || fws 126 drivers/irqchip/qcom-irq-combiner.c (fws->param[0] >= combiner->nirqs) || fws 127 drivers/irqchip/qcom-irq-combiner.c (fws->param[1] & IORESOURCE_IRQ_LOWEDGE) || fws 128 drivers/irqchip/qcom-irq-combiner.c (fws->param[1] & IORESOURCE_IRQ_HIGHEDGE))) fws 131 drivers/irqchip/qcom-irq-combiner.c *hwirq = fws->param[0]; fws 132 drivers/irqchip/qcom-irq-combiner.c *type = fws->param[1]; fws 95 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c struct brcmf_fws_info *fws; fws 103 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c return bcdc->fws; fws 337 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c if (!brcmf_fws_queue_skbs(bcdc->fws)) fws 370 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c if (brcmf_fws_fc_active(bcdc->fws)) { fws 372 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c brcmf_fws_bustxfail(bcdc->fws, txp); fws 427 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c struct brcmf_fws_info *fws; fws 429 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c fws = brcmf_fws_attach(drvr); fws 430 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c if (IS_ERR(fws)) fws 431 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c return PTR_ERR(fws); fws 433 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c bcdc->fws = fws; fws 487 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c brcmf_fws_detach(bcdc->fws); fws 541 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_get_tlv_len(struct brcmf_fws_info *fws, fws 547 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.tlv_invalid_type++; fws 554 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_lock(struct brcmf_fws_info *fws) fws 555 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c __acquires(&fws->spinlock) fws 557 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c spin_lock_irqsave(&fws->spinlock, fws->flags); fws 560 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_unlock(struct brcmf_fws_info *fws) fws 561 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c __releases(&fws->spinlock) fws 563 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c spin_unlock_irqrestore(&fws->spinlock, fws->flags); fws 643 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_psq_flush(struct brcmf_fws_info *fws, struct pktq *q, fws 657 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_hanger_poppkt(&fws->hanger, hslot, &skb, fws 680 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_hanger_cleanup(struct brcmf_fws_info *fws, fws 684 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_hanger *h = &fws->hanger; fws 705 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_macdesc_set_name(struct brcmf_fws_info *fws, fws 708 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (desc == &fws->desc.other) fws 746 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_lookup(struct brcmf_fws_info *fws, u8 *ea) fws 754 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c entry = &fws->desc.nodes[0]; fws 755 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c for (i = 0; i < ARRAY_SIZE(fws->desc.nodes); i++) { fws 765 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_find(struct brcmf_fws_info *fws, struct brcmf_if *ifp, u8 *da) fws 767 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_mac_descriptor *entry = &fws->desc.other; fws 781 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c entry = brcmf_fws_macdesc_lookup(fws, da); fws 789 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static bool brcmf_fws_macdesc_closed(struct brcmf_fws_info *fws, fws 800 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if_entry = &fws->desc.iface[entry->interface_id]; fws 814 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_macdesc_cleanup(struct brcmf_fws_info *fws, fws 819 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_psq_flush(fws, &entry->psq, ifidx); fws 824 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_bus_txq_cleanup(struct brcmf_fws_info *fws, fws 834 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c txq = brcmf_bus_gettxq(fws->drvr->bus_if); fws 844 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c hi = &fws->hanger.items[hslot]; fws 853 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_cleanup(struct brcmf_fws_info *fws, int ifidx) fws 859 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws == NULL) fws 866 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c table = &fws->desc.nodes[0]; fws 867 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c for (i = 0; i < ARRAY_SIZE(fws->desc.nodes); i++) fws 868 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_cleanup(fws, &table[i], ifidx); fws 870 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_cleanup(fws, &fws->desc.other, ifidx); fws 871 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_bus_txq_cleanup(fws, matchfn, ifidx); fws 872 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_hanger_cleanup(fws, matchfn, ifidx); fws 875 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static u8 brcmf_fws_hdrpush(struct brcmf_fws_info *fws, struct sk_buff *skb) fws 890 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (BRCMF_FWS_MODE_GET_REUSESEQ(fws->mode)) fws 903 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (BRCMF_FWS_MODE_GET_REUSESEQ(fws->mode)) { fws 927 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static bool brcmf_fws_tim_update(struct brcmf_fws_info *fws, fws 954 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c 4 + fws->drvr->hdrlen; fws 964 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c data_offset = brcmf_fws_hdrpush(fws, skb); fws 966 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 967 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c err = brcmf_proto_txdata(fws->drvr, ifidx, data_offset, skb); fws 968 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 977 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_flow_control_check(struct brcmf_fws_info *fws, struct pktq *pq, fws 980 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_if *ifp = brcmf_get_ifp(fws->drvr, if_id); fws 991 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.fws_flow_block++; fws 997 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_rssi_indicate(struct brcmf_fws_info *fws, s8 rssi) fws 1004 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c int brcmf_fws_macdesc_indicate(struct brcmf_fws_info *fws, u8 type, u8 *data) fws 1015 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c entry = &fws->desc.nodes[mac_handle & 0x1F]; fws 1020 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1021 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_cleanup(fws, entry, -1); fws 1023 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1025 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.mac_update_failed++; fws 1029 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c existing = brcmf_fws_macdesc_lookup(fws, addr); fws 1032 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1035 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_set_name(fws, entry); fws 1038 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1041 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.mac_update_failed++; fws 1046 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1051 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_set_name(fws, entry); fws 1052 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1064 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_macdesc_state_indicate(struct brcmf_fws_info *fws, fws 1072 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c entry = &fws->desc.nodes[mac_handle & 0x1F]; fws 1074 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.mac_ps_update_failed++; fws 1077 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_tim_update(fws, entry, BRCMF_FWS_FIFO_AC_BK, false); fws 1087 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_tim_update(fws, entry, BRCMF_FWS_FIFO_AC_BE, false); fws 1088 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_tim_update(fws, entry, BRCMF_FWS_FIFO_AC_VI, false); fws 1089 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_tim_update(fws, entry, BRCMF_FWS_FIFO_AC_VO, true); fws 1092 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1096 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_interface_state_indicate(struct brcmf_fws_info *fws, fws 1110 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c entry = &fws->desc.iface[ifidx]; fws 1118 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1130 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1133 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1137 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.if_update_failed++; fws 1141 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_request_indicate(struct brcmf_fws_info *fws, u8 type, fws 1146 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c entry = &fws->desc.nodes[data[1] & 0x1F]; fws 1149 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.credit_request_failed++; fws 1151 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.packet_request_failed++; fws 1158 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1165 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1200 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_return_credits(struct brcmf_fws_info *fws, fws 1210 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map |= 1 << fifo; fws 1213 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c (fws->credits_borrowed[0])) { fws 1216 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c borrowed = &fws->credits_borrowed[lender_ac]; fws 1218 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map |= (1 << lender_ac); fws 1219 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fifo_credit = &fws->fifo_credit[lender_ac]; fws 1233 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit[fifo] += credits; fws 1234 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fifo_credit[fifo] > fws->init_fifo_credit[fifo]) fws 1235 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit[fifo] = fws->init_fifo_credit[fifo]; fws 1239 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_schedule_deq(struct brcmf_fws_info *fws) fws 1242 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if ((fws->fifo_credit_map & fws->fifo_delay_map) || fws 1243 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c (!brcmf_fws_fc_active(fws) && fws->fifo_delay_map)) fws 1244 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c queue_work(fws->fws_wq, &fws->fws_dequeue_work); fws 1247 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_enq(struct brcmf_fws_info *fws, fws 1251 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_pub *drvr = fws->drvr; fws 1253 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c u32 *qfull_stat = &fws->stats.delayq_full_error; fws 1271 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c qfull_stat = &fws->stats.supprq_full_error; fws 1326 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_delay_map |= 1 << fifo; fws 1327 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_enqpkt[fifo]++; fws 1336 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_tim_update(fws, entry, fifo, true); fws 1337 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_flow_control_check(fws, &entry->psq, fws 1342 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static struct sk_buff *brcmf_fws_deq(struct brcmf_fws_info *fws, int fifo) fws 1353 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c table = (struct brcmf_fws_mac_descriptor *)&fws->desc; fws 1354 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c num_nodes = sizeof(fws->desc) / sizeof(struct brcmf_fws_mac_descriptor); fws 1355 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c node_pos = fws->deq_node_pos[fifo]; fws 1360 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_closed(fws, entry, fifo)) fws 1383 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->deq_node_pos[fifo] = (node_pos + i + 1) % num_nodes; fws 1384 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_flow_control_check(fws, &entry->psq, fws 1392 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_tim_update(fws, entry, fifo, false); fws 1398 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_enqpkt[fifo]--; fws 1399 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fifo_enqpkt[fifo] == 0) fws 1400 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_delay_map &= ~(1 << fifo); fws 1409 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_txstatus_suppressed(struct brcmf_fws_info *fws, int fifo, fws 1437 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c ret = brcmf_fws_enq(fws, BRCMF_FWS_SKBSTATE_SUPPRESSED, fifo, skb); fws 1441 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_hanger_poppkt(&fws->hanger, hslot, &skb, true); fws 1444 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_hanger_mark_suppressed(&fws->hanger, hslot); fws 1451 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_txs_process(struct brcmf_fws_info *fws, u8 flags, u32 hslot, fws 1454 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_pub *drvr = fws->drvr; fws 1467 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.txs_discard += compcnt; fws 1469 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.txs_supp_core += compcnt; fws 1472 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.txs_supp_ps += compcnt; fws 1475 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.txs_tossed += compcnt; fws 1477 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.txs_host_tossed += compcnt; fws 1482 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c ret = brcmf_fws_hanger_poppkt(&fws->hanger, hslot, &skb, fws 1505 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fcmode == BRCMF_FWS_FCMODE_IMPLIED_CREDIT || fws 1508 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_return_credits(fws, fifo, 1); fws 1509 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_schedule_deq(fws); fws 1513 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c ret = brcmf_proto_hdrpull(fws->drvr, false, skb, &ifp); fws 1519 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c ret = brcmf_fws_txstatus_suppressed(fws, fifo, skb, fws 1527 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (BRCMF_FWS_MODE_GET_REUSESEQ(fws->mode)) fws 1536 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_fifocreditback_indicate(struct brcmf_fws_info *fws, fws 1541 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fcmode != BRCMF_FWS_FCMODE_EXPLICIT_CREDIT) { fws 1547 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1549 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_return_credits(fws, i, data[i]); fws 1551 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_dbg(DATA, "map: credit %x delay %x\n", fws->fifo_credit_map, fws 1552 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_delay_map); fws 1553 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1557 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_txstatus_indicate(struct brcmf_fws_info *fws, u8 type, fws 1575 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (BRCMF_FWS_MODE_GET_REUSESEQ(fws->mode)) { fws 1588 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.txs_indicate += compcnt; fws 1590 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1591 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_txs_process(fws, flags, hslot, genbit, seq, compcnt); fws 1592 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1596 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_dbg_seqnum_check(struct brcmf_fws_info *fws, u8 *data) fws 1611 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws = drvr_to_fws(drvr); fws 1620 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->creditmap_received = true; fws 1623 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1624 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c for (i = 0; i < ARRAY_SIZE(fws->fifo_credit); i++) { fws 1625 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit[i] += credits[i] - fws->init_fifo_credit[i]; fws 1626 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->init_fifo_credit[i] = credits[i]; fws 1627 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fifo_credit[i] > 0) fws 1628 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map |= 1 << i; fws 1630 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map &= ~(1 << i); fws 1631 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c WARN_ONCE(fws->fifo_credit[i] < 0, fws 1633 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit[i]); fws 1635 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_schedule_deq(fws); fws 1636 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws = drvr_to_fws(ifp->drvr); fws 1646 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws) { fws 1647 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 1648 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->bcmc_credit_check = true; fws 1649 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 1854 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws = drvr_to_fws(ifp->drvr); fws 1871 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if ((!fws) || (!fws->fw_signals)) { fws 1876 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.header_pulls++; fws 1898 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_get_tlv_len(fws, type)); fws 1904 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (len < brcmf_fws_get_tlv_len(fws, type)) fws 1915 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_indicate(fws, type, data); fws 1919 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c err = brcmf_fws_macdesc_state_indicate(fws, type, data); fws 1923 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c err = brcmf_fws_interface_state_indicate(fws, type, fws 1928 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c err = brcmf_fws_request_indicate(fws, type, data); fws 1932 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_txstatus_indicate(fws, type, data); fws 1935 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c err = brcmf_fws_fifocreditback_indicate(fws, data); fws 1938 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_rssi_indicate(fws, *data); fws 1941 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_dbg_seqnum_check(fws, data); fws 1946 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.tlv_invalid_type++; fws 1956 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.tlv_parse_failed++; fws 1959 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_schedule_deq(fws); fws 1969 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.header_only_pkt++; fws 1972 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static u8 brcmf_fws_precommit_skb(struct brcmf_fws_info *fws, int fifo, fws 1990 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c return brcmf_fws_hdrpush(fws, p); fws 1993 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static void brcmf_fws_rollback_toq(struct brcmf_fws_info *fws, fws 1996 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_pub *drvr = fws->drvr; fws 2019 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.rollback_failed++; fws 2021 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_txs_process(fws, BRCMF_FWS_TXSTATUS_HOST_TOSSED, fws 2024 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.rollback_success++; fws 2025 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_return_credits(fws, fifo, 1); fws 2030 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_borrow_credit(struct brcmf_fws_info *fws) fws 2034 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (time_after(fws->borrow_defer_timestamp, jiffies)) { fws 2035 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map &= ~(1 << BRCMF_FWS_FIFO_AC_BE); fws 2040 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fifo_credit[lender_ac] > 0) { fws 2041 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->credits_borrowed[lender_ac]++; fws 2042 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit[lender_ac]--; fws 2043 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fifo_credit[lender_ac] == 0) fws 2044 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map &= ~(1 << lender_ac); fws 2045 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map |= (1 << BRCMF_FWS_FIFO_AC_BE); fws 2050 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit_map &= ~(1 << BRCMF_FWS_FIFO_AC_BE); fws 2054 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_commit_skb(struct brcmf_fws_info *fws, int fifo, fws 2067 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c data_offset = brcmf_fws_precommit_skb(fws, fifo, skb); fws 2072 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 2073 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c rc = brcmf_proto_txdata(fws->drvr, ifidx, data_offset, skb); fws 2074 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 2081 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c (void)brcmf_proto_hdrpull(fws->drvr, false, skb, NULL); fws 2085 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.pkt2bus++; fws 2086 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.send_pkts[fifo]++; fws 2088 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.requested_sent[fifo]++; fws 2093 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_rollback_toq(fws, skb, fifo); fws 2097 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c static int brcmf_fws_assign_htod(struct brcmf_fws_info *fws, struct sk_buff *p, fws 2105 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c hslot = brcmf_fws_hanger_get_free_slot(&fws->hanger); fws 2109 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c rc = brcmf_fws_hanger_pushpkt(&fws->hanger, p, hslot); fws 2113 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.generic_error++; fws 2120 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws = drvr_to_fws(drvr); fws 2136 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 2138 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->borrow_defer_timestamp = jiffies + fws 2141 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c skcb->mac = brcmf_fws_macdesc_find(fws, ifp, eh->h_dest); fws 2144 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (!brcmf_fws_assign_htod(fws, skb, fifo)) { fws 2145 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_enq(fws, BRCMF_FWS_SKBSTATE_DELAYED, fifo, skb); fws 2146 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_schedule_deq(fws); fws 2152 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 2170 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws = drvr_to_fws(ifp->drvr); fws 2173 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (!ifp->ndev || !brcmf_fws_queue_skbs(fws)) fws 2176 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c entry = &fws->desc.iface[ifp->ifidx]; fws 2179 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_set_name(fws, entry); fws 2188 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws = drvr_to_fws(ifp->drvr); fws 2193 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 2196 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_cleanup(fws, &fws->desc.iface[ifp->ifidx], fws 2199 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_cleanup(fws, ifp->ifidx); fws 2200 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 2205 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws; fws 2213 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws = container_of(worker, struct brcmf_fws_info, fws_dequeue_work); fws 2214 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c drvr = fws->drvr; fws 2216 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 2217 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c for (fifo = BRCMF_FWS_FIFO_BCMC; fifo >= 0 && !fws->bus_flow_blocked; fws 2219 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (!brcmf_fws_fc_active(fws)) { fws 2220 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c while ((skb = brcmf_fws_deq(fws, fifo)) != NULL) { fws 2223 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_hanger_poppkt(&fws->hanger, hslot, fws 2228 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 2230 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 2235 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->bus_flow_blocked) fws 2240 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c while ((fws->fifo_credit[fifo] > 0) || fws 2241 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c ((!fws->bcmc_credit_check) && fws 2243 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c skb = brcmf_fws_deq(fws, fifo); fws 2246 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fifo_credit[fifo]--; fws 2247 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (brcmf_fws_commit_skb(fws, fifo, skb)) fws 2249 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->bus_flow_blocked) fws 2253 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c (fws->fifo_credit[fifo] <= 0) && fws 2254 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c (!fws->bus_flow_blocked)) { fws 2255 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c while (brcmf_fws_borrow_credit(fws) == 0) { fws 2256 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c skb = brcmf_fws_deq(fws, fifo); fws 2258 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_return_credits(fws, fifo, 1); fws 2261 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (brcmf_fws_commit_skb(fws, fifo, skb)) fws 2263 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->bus_flow_blocked) fws 2268 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 2342 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws; fws 2348 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws = kzalloc(sizeof(*fws), GFP_KERNEL); fws 2349 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (!fws) { fws 2354 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c spin_lock_init(&fws->spinlock); fws 2357 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->drvr = drvr; fws 2358 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fcmode = drvr->settings->fcmode; fws 2361 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c (fws->fcmode == BRCMF_FWS_FCMODE_NONE)) { fws 2362 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->avoid_queueing = true; fws 2364 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c return fws; fws 2367 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fws_wq = create_singlethread_workqueue("brcmf_fws_wq"); fws 2368 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fws_wq == NULL) { fws 2373 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c INIT_WORK(&fws->fws_dequeue_work, brcmf_fws_dequeue_worker); fws 2376 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fcmode != BRCMF_FWS_FCMODE_NONE) fws 2400 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fw_signals = true; fws 2404 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fcmode = BRCMF_FWS_FCMODE_NONE; fws 2405 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fw_signals = false; fws 2418 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c BRCMF_FWS_MODE_SET_REUSESEQ(fws->mode, 1); fws 2423 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_hanger_init(&fws->hanger); fws 2424 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_init(&fws->desc.other, NULL, 0); fws 2425 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_macdesc_set_name(fws, &fws->desc.other); fws 2426 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_dbg(INFO, "added %s\n", fws->desc.other.name); fws 2427 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmu_pktq_init(&fws->desc.other.psq, BRCMF_FWS_PSQ_PREC_COUNT, fws 2431 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->fw_signals ? "enabled" : "disabled", tlv); fws 2432 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c return fws; fws 2435 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_detach(fws); fws 2439 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c void brcmf_fws_detach(struct brcmf_fws_info *fws) fws 2441 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (!fws) fws 2444 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->fws_wq) fws 2445 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c destroy_workqueue(fws->fws_wq); fws 2448 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 2449 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_cleanup(fws, -1); fws 2450 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 2453 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c kfree(fws); fws 2463 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c bool brcmf_fws_queue_skbs(struct brcmf_fws_info *fws) fws 2465 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c return !fws->avoid_queueing; fws 2468 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c bool brcmf_fws_fc_active(struct brcmf_fws_info *fws) fws 2470 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (!fws->creditmap_received) fws 2473 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c return fws->fcmode != BRCMF_FWS_FCMODE_NONE; fws 2476 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c void brcmf_fws_bustxfail(struct brcmf_fws_info *fws, struct sk_buff *skb) fws 2484 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_lock(fws); fws 2486 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_txs_process(fws, BRCMF_FWS_TXSTATUS_HOST_TOSSED, hslot, 0, 0, fws 2488 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_unlock(fws); fws 2493 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c struct brcmf_fws_info *fws = drvr_to_fws(drvr); fws 2497 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c if (fws->avoid_queueing) { fws 2506 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->bus_flow_blocked = flow_blocked; fws 2508 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c brcmf_fws_schedule_deq(fws); fws 2510 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c fws->stats.bus_flow_block++; fws 10 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h void brcmf_fws_detach(struct brcmf_fws_info *fws); fws 12 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h bool brcmf_fws_queue_skbs(struct brcmf_fws_info *fws); fws 13 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h bool brcmf_fws_fc_active(struct brcmf_fws_info *fws); fws 20 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h void brcmf_fws_bustxfail(struct brcmf_fws_info *fws, struct sk_buff *skb);