htt 2209 drivers/net/wireless/ath/ath10k/core.c wake_up(&ar->htt.empty_tx_wq); htt 2307 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_amsdu = ATH10K_HTT_MAX_NUM_AMSDU_DEFAULT; htt 2308 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_ampdu = ATH10K_HTT_MAX_NUM_AMPDU_DEFAULT; htt 2331 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_amsdu = 1; htt 2354 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_NUM_MSDU_DESC; htt 2370 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_10X_NUM_MSDU_DESC; htt 2380 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = htt 2383 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_TLV_NUM_MSDU_DESC; htt 2404 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_10_4_NUM_MSDU_DESC_PFC; htt 2406 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_10_4_NUM_MSDU_DESC; htt 2600 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_tx_start(&ar->htt); htt 2609 drivers/net/wireless/ath/ath10k/core.c ar->htt.rx_ring.in_ord_rx = !!(test_bit(WMI_SERVICE_RX_FULL_REORDER, htt 2612 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_rx_alloc(&ar->htt); htt 2637 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_connect(&ar->htt); htt 2777 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_setup(&ar->htt); htt 2799 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_rx_free(&ar->htt); htt 2801 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_tx_free(&ar->htt); htt 2843 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_tx_stop(&ar->htt); htt 2844 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_rx_free(&ar->htt); htt 3200 drivers/net/wireless/ath/ath10k/core.c init_waitqueue_head(&ar->htt.empty_tx_wq); htt 3252 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_tx_destroy(&ar->htt); htt 992 drivers/net/wireless/ath/ath10k/core.h struct ath10k_htt htt; htt 98 drivers/net/wireless/ath/ath10k/debug.c ar->htt.target_version_major, htt 99 drivers/net/wireless/ath/ath10k/debug.c ar->htt.target_version_minor, htt 878 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_htt_h2t_stats_req(&ar->htt, ar->debug.htt_stats_mask, htt 967 drivers/net/wireless/ath/ath10k/debug.c amsdu = ar->htt.max_num_amsdu; htt 968 drivers/net/wireless/ath/ath10k/debug.c ampdu = ar->htt.max_num_ampdu; htt 997 drivers/net/wireless/ath/ath10k/debug.c res = ath10k_htt_h2t_aggr_cfg_msg(&ar->htt, ampdu, amsdu); htt 1002 drivers/net/wireless/ath/ath10k/debug.c ar->htt.max_num_amsdu = amsdu; htt 1003 drivers/net/wireless/ath/ath10k/debug.c ar->htt.max_num_ampdu = ampdu; htt 133 drivers/net/wireless/ath/ath10k/htt.c int ath10k_htt_connect(struct ath10k_htt *htt) htt 148 drivers/net/wireless/ath/ath10k/htt.c status = ath10k_htc_connect_service(&htt->ar->htc, &conn_req, htt 154 drivers/net/wireless/ath/ath10k/htt.c htt->eid = conn_resp.eid; htt 161 drivers/net/wireless/ath/ath10k/htt.c struct ath10k_htt *htt = &ar->htt; htt 163 drivers/net/wireless/ath/ath10k/htt.c htt->ar = ar; htt 171 drivers/net/wireless/ath/ath10k/htt.c htt->prefetch_len = htt 179 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_10_4_t2h_msg_types; htt 180 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_10_4_T2H_NUM_MSGS; htt 183 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_10x_t2h_msg_types; htt 184 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_10X_T2H_NUM_MSGS; htt 187 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_tlv_t2h_msg_types; htt 188 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_TLV_T2H_NUM_MSGS; htt 191 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_main_t2h_msg_types; htt 192 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_MAIN_T2H_NUM_MSGS; htt 199 drivers/net/wireless/ath/ath10k/htt.c ath10k_htt_set_tx_ops(htt); htt 200 drivers/net/wireless/ath/ath10k/htt.c ath10k_htt_set_rx_ops(htt); htt 207 drivers/net/wireless/ath/ath10k/htt.c static int ath10k_htt_verify_version(struct ath10k_htt *htt) htt 209 drivers/net/wireless/ath/ath10k/htt.c struct ath10k *ar = htt->ar; htt 212 drivers/net/wireless/ath/ath10k/htt.c htt->target_version_major, htt->target_version_minor); htt 214 drivers/net/wireless/ath/ath10k/htt.c if (htt->target_version_major != 2 && htt 215 drivers/net/wireless/ath/ath10k/htt.c htt->target_version_major != 3) { htt 217 drivers/net/wireless/ath/ath10k/htt.c htt->target_version_major); htt 224 drivers/net/wireless/ath/ath10k/htt.c int ath10k_htt_setup(struct ath10k_htt *htt) htt 226 drivers/net/wireless/ath/ath10k/htt.c struct ath10k *ar = htt->ar; htt 229 drivers/net/wireless/ath/ath10k/htt.c init_completion(&htt->target_version_received); htt 231 drivers/net/wireless/ath/ath10k/htt.c status = ath10k_htt_h2t_ver_req_msg(htt); htt 235 drivers/net/wireless/ath/ath10k/htt.c status = wait_for_completion_timeout(&htt->target_version_received, htt 242 drivers/net/wireless/ath/ath10k/htt.c status = ath10k_htt_verify_version(htt); htt 249 drivers/net/wireless/ath/ath10k/htt.c status = ath10k_htt_send_frag_desc_bank_cfg(htt); htt 253 drivers/net/wireless/ath/ath10k/htt.c status = ath10k_htt_send_rx_ring_cfg(htt); htt 260 drivers/net/wireless/ath/ath10k/htt.c status = ath10k_htt_h2t_aggr_cfg_msg(htt, htt 261 drivers/net/wireless/ath/ath10k/htt.c htt->max_num_ampdu, htt 262 drivers/net/wireless/ath/ath10k/htt.c htt->max_num_amsdu); htt 2025 drivers/net/wireless/ath/ath10k/htt.h int (*htt_send_rx_ring_cfg)(struct ath10k_htt *htt); htt 2026 drivers/net/wireless/ath/ath10k/htt.h int (*htt_send_frag_desc_bank_cfg)(struct ath10k_htt *htt); htt 2027 drivers/net/wireless/ath/ath10k/htt.h int (*htt_alloc_frag_desc)(struct ath10k_htt *htt); htt 2028 drivers/net/wireless/ath/ath10k/htt.h void (*htt_free_frag_desc)(struct ath10k_htt *htt); htt 2029 drivers/net/wireless/ath/ath10k/htt.h int (*htt_tx)(struct ath10k_htt *htt, enum ath10k_hw_txrx_mode txmode, htt 2031 drivers/net/wireless/ath/ath10k/htt.h int (*htt_alloc_txbuff)(struct ath10k_htt *htt); htt 2032 drivers/net/wireless/ath/ath10k/htt.h void (*htt_free_txbuff)(struct ath10k_htt *htt); htt 2033 drivers/net/wireless/ath/ath10k/htt.h int (*htt_h2t_aggr_cfg_msg)(struct ath10k_htt *htt, htt 2038 drivers/net/wireless/ath/ath10k/htt.h static inline int ath10k_htt_send_rx_ring_cfg(struct ath10k_htt *htt) htt 2040 drivers/net/wireless/ath/ath10k/htt.h if (!htt->tx_ops->htt_send_rx_ring_cfg) htt 2043 drivers/net/wireless/ath/ath10k/htt.h return htt->tx_ops->htt_send_rx_ring_cfg(htt); htt 2046 drivers/net/wireless/ath/ath10k/htt.h static inline int ath10k_htt_send_frag_desc_bank_cfg(struct ath10k_htt *htt) htt 2048 drivers/net/wireless/ath/ath10k/htt.h if (!htt->tx_ops->htt_send_frag_desc_bank_cfg) htt 2051 drivers/net/wireless/ath/ath10k/htt.h return htt->tx_ops->htt_send_frag_desc_bank_cfg(htt); htt 2054 drivers/net/wireless/ath/ath10k/htt.h static inline int ath10k_htt_alloc_frag_desc(struct ath10k_htt *htt) htt 2056 drivers/net/wireless/ath/ath10k/htt.h if (!htt->tx_ops->htt_alloc_frag_desc) htt 2059 drivers/net/wireless/ath/ath10k/htt.h return htt->tx_ops->htt_alloc_frag_desc(htt); htt 2062 drivers/net/wireless/ath/ath10k/htt.h static inline void ath10k_htt_free_frag_desc(struct ath10k_htt *htt) htt 2064 drivers/net/wireless/ath/ath10k/htt.h if (htt->tx_ops->htt_free_frag_desc) htt 2065 drivers/net/wireless/ath/ath10k/htt.h htt->tx_ops->htt_free_frag_desc(htt); htt 2068 drivers/net/wireless/ath/ath10k/htt.h static inline int ath10k_htt_tx(struct ath10k_htt *htt, htt 2072 drivers/net/wireless/ath/ath10k/htt.h return htt->tx_ops->htt_tx(htt, txmode, msdu); htt 2075 drivers/net/wireless/ath/ath10k/htt.h static inline int ath10k_htt_alloc_txbuff(struct ath10k_htt *htt) htt 2077 drivers/net/wireless/ath/ath10k/htt.h if (!htt->tx_ops->htt_alloc_txbuff) htt 2080 drivers/net/wireless/ath/ath10k/htt.h return htt->tx_ops->htt_alloc_txbuff(htt); htt 2083 drivers/net/wireless/ath/ath10k/htt.h static inline void ath10k_htt_free_txbuff(struct ath10k_htt *htt) htt 2085 drivers/net/wireless/ath/ath10k/htt.h if (htt->tx_ops->htt_free_txbuff) htt 2086 drivers/net/wireless/ath/ath10k/htt.h htt->tx_ops->htt_free_txbuff(htt); htt 2089 drivers/net/wireless/ath/ath10k/htt.h static inline int ath10k_htt_h2t_aggr_cfg_msg(struct ath10k_htt *htt, htt 2094 drivers/net/wireless/ath/ath10k/htt.h if (!htt->tx_ops->htt_h2t_aggr_cfg_msg) htt 2097 drivers/net/wireless/ath/ath10k/htt.h return htt->tx_ops->htt_h2t_aggr_cfg_msg(htt, htt 2103 drivers/net/wireless/ath/ath10k/htt.h size_t (*htt_get_rx_ring_size)(struct ath10k_htt *htt); htt 2104 drivers/net/wireless/ath/ath10k/htt.h void (*htt_config_paddrs_ring)(struct ath10k_htt *htt, void *vaddr); htt 2105 drivers/net/wireless/ath/ath10k/htt.h void (*htt_set_paddrs_ring)(struct ath10k_htt *htt, dma_addr_t paddr, htt 2107 drivers/net/wireless/ath/ath10k/htt.h void* (*htt_get_vaddr_ring)(struct ath10k_htt *htt); htt 2108 drivers/net/wireless/ath/ath10k/htt.h void (*htt_reset_paddrs_ring)(struct ath10k_htt *htt, int idx); htt 2109 drivers/net/wireless/ath/ath10k/htt.h bool (*htt_rx_proc_rx_frag_ind)(struct ath10k_htt *htt, htt 2114 drivers/net/wireless/ath/ath10k/htt.h static inline size_t ath10k_htt_get_rx_ring_size(struct ath10k_htt *htt) htt 2116 drivers/net/wireless/ath/ath10k/htt.h if (!htt->rx_ops->htt_get_rx_ring_size) htt 2119 drivers/net/wireless/ath/ath10k/htt.h return htt->rx_ops->htt_get_rx_ring_size(htt); htt 2122 drivers/net/wireless/ath/ath10k/htt.h static inline void ath10k_htt_config_paddrs_ring(struct ath10k_htt *htt, htt 2125 drivers/net/wireless/ath/ath10k/htt.h if (htt->rx_ops->htt_config_paddrs_ring) htt 2126 drivers/net/wireless/ath/ath10k/htt.h htt->rx_ops->htt_config_paddrs_ring(htt, vaddr); htt 2129 drivers/net/wireless/ath/ath10k/htt.h static inline void ath10k_htt_set_paddrs_ring(struct ath10k_htt *htt, htt 2133 drivers/net/wireless/ath/ath10k/htt.h if (htt->rx_ops->htt_set_paddrs_ring) htt 2134 drivers/net/wireless/ath/ath10k/htt.h htt->rx_ops->htt_set_paddrs_ring(htt, paddr, idx); htt 2137 drivers/net/wireless/ath/ath10k/htt.h static inline void *ath10k_htt_get_vaddr_ring(struct ath10k_htt *htt) htt 2139 drivers/net/wireless/ath/ath10k/htt.h if (!htt->rx_ops->htt_get_vaddr_ring) htt 2142 drivers/net/wireless/ath/ath10k/htt.h return htt->rx_ops->htt_get_vaddr_ring(htt); htt 2145 drivers/net/wireless/ath/ath10k/htt.h static inline void ath10k_htt_reset_paddrs_ring(struct ath10k_htt *htt, int idx) htt 2147 drivers/net/wireless/ath/ath10k/htt.h if (htt->rx_ops->htt_reset_paddrs_ring) htt 2148 drivers/net/wireless/ath/ath10k/htt.h htt->rx_ops->htt_reset_paddrs_ring(htt, idx); htt 2151 drivers/net/wireless/ath/ath10k/htt.h static inline bool ath10k_htt_rx_proc_rx_frag_ind(struct ath10k_htt *htt, htt 2155 drivers/net/wireless/ath/ath10k/htt.h if (!htt->rx_ops->htt_rx_proc_rx_frag_ind) htt 2158 drivers/net/wireless/ath/ath10k/htt.h return htt->rx_ops->htt_rx_proc_rx_frag_ind(htt, rx, skb); htt 2243 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_connect(struct ath10k_htt *htt); htt 2245 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_setup(struct ath10k_htt *htt); htt 2247 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_tx_start(struct ath10k_htt *htt); htt 2248 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_tx_stop(struct ath10k_htt *htt); htt 2249 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_tx_destroy(struct ath10k_htt *htt); htt 2250 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_tx_free(struct ath10k_htt *htt); htt 2252 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_rx_alloc(struct ath10k_htt *htt); htt 2254 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_rx_free(struct ath10k_htt *htt); htt 2259 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_h2t_ver_req_msg(struct ath10k_htt *htt); htt 2260 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_h2t_stats_req(struct ath10k_htt *htt, u32 mask, u32 reset_mask, htt 2274 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_tx_dec_pending(struct ath10k_htt *htt); htt 2275 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_tx_inc_pending(struct ath10k_htt *htt); htt 2276 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_tx_mgmt_dec_pending(struct ath10k_htt *htt); htt 2277 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_tx_mgmt_inc_pending(struct ath10k_htt *htt, bool is_mgmt, htt 2280 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_tx_alloc_msdu_id(struct ath10k_htt *htt, struct sk_buff *skb); htt 2281 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_tx_free_msdu_id(struct ath10k_htt *htt, u16 msdu_id); htt 2282 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_mgmt_tx(struct ath10k_htt *htt, struct sk_buff *msdu); htt 2286 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_set_tx_ops(struct ath10k_htt *htt); htt 2287 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_set_rx_ops(struct ath10k_htt *htt); htt 31 drivers/net/wireless/ath/ath10k/htt_rx.c hash_for_each_possible(ar->htt.rx_ring.skb_table, rxcb, hlist, paddr) htt 39 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_ring_free(struct ath10k_htt *htt) htt 46 drivers/net/wireless/ath/ath10k/htt_rx.c if (htt->rx_ring.in_ord_rx) { htt 47 drivers/net/wireless/ath/ath10k/htt_rx.c hash_for_each_safe(htt->rx_ring.skb_table, i, n, rxcb, hlist) { htt 49 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, rxcb->paddr, htt 56 drivers/net/wireless/ath/ath10k/htt_rx.c for (i = 0; i < htt->rx_ring.size; i++) { htt 57 drivers/net/wireless/ath/ath10k/htt_rx.c skb = htt->rx_ring.netbufs_ring[i]; htt 62 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, rxcb->paddr, htt 69 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_cnt = 0; htt 70 drivers/net/wireless/ath/ath10k/htt_rx.c hash_init(htt->rx_ring.skb_table); htt 71 drivers/net/wireless/ath/ath10k/htt_rx.c memset(htt->rx_ring.netbufs_ring, 0, htt 72 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.size * sizeof(htt->rx_ring.netbufs_ring[0])); htt 75 drivers/net/wireless/ath/ath10k/htt_rx.c static size_t ath10k_htt_get_rx_ring_size_32(struct ath10k_htt *htt) htt 77 drivers/net/wireless/ath/ath10k/htt_rx.c return htt->rx_ring.size * sizeof(htt->rx_ring.paddrs_ring_32); htt 80 drivers/net/wireless/ath/ath10k/htt_rx.c static size_t ath10k_htt_get_rx_ring_size_64(struct ath10k_htt *htt) htt 82 drivers/net/wireless/ath/ath10k/htt_rx.c return htt->rx_ring.size * sizeof(htt->rx_ring.paddrs_ring_64); htt 85 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_config_paddrs_ring_32(struct ath10k_htt *htt, htt 88 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.paddrs_ring_32 = vaddr; htt 91 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_config_paddrs_ring_64(struct ath10k_htt *htt, htt 94 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.paddrs_ring_64 = vaddr; htt 97 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_set_paddrs_ring_32(struct ath10k_htt *htt, htt 100 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.paddrs_ring_32[idx] = __cpu_to_le32(paddr); htt 103 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_set_paddrs_ring_64(struct ath10k_htt *htt, htt 106 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.paddrs_ring_64[idx] = __cpu_to_le64(paddr); htt 109 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_reset_paddrs_ring_32(struct ath10k_htt *htt, int idx) htt 111 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.paddrs_ring_32[idx] = 0; htt 114 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_reset_paddrs_ring_64(struct ath10k_htt *htt, int idx) htt 116 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.paddrs_ring_64[idx] = 0; htt 119 drivers/net/wireless/ath/ath10k/htt_rx.c static void *ath10k_htt_get_vaddr_ring_32(struct ath10k_htt *htt) htt 121 drivers/net/wireless/ath/ath10k/htt_rx.c return (void *)htt->rx_ring.paddrs_ring_32; htt 124 drivers/net/wireless/ath/ath10k/htt_rx.c static void *ath10k_htt_get_vaddr_ring_64(struct ath10k_htt *htt) htt 126 drivers/net/wireless/ath/ath10k/htt_rx.c return (void *)htt->rx_ring.paddrs_ring_64; htt 129 drivers/net/wireless/ath/ath10k/htt_rx.c static int __ath10k_htt_rx_ring_fill_n(struct ath10k_htt *htt, int num) htt 144 drivers/net/wireless/ath/ath10k/htt_rx.c idx = __le32_to_cpu(*htt->rx_ring.alloc_idx.vaddr); htt 161 drivers/net/wireless/ath/ath10k/htt_rx.c paddr = dma_map_single(htt->ar->dev, skb->data, htt 165 drivers/net/wireless/ath/ath10k/htt_rx.c if (unlikely(dma_mapping_error(htt->ar->dev, paddr))) { htt 173 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.netbufs_ring[idx] = skb; htt 174 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_set_paddrs_ring(htt, paddr, idx); htt 175 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_cnt++; htt 177 drivers/net/wireless/ath/ath10k/htt_rx.c if (htt->rx_ring.in_ord_rx) { htt 178 drivers/net/wireless/ath/ath10k/htt_rx.c hash_add(htt->rx_ring.skb_table, htt 185 drivers/net/wireless/ath/ath10k/htt_rx.c idx &= htt->rx_ring.size_mask; htt 194 drivers/net/wireless/ath/ath10k/htt_rx.c *htt->rx_ring.alloc_idx.vaddr = __cpu_to_le32(idx); htt 198 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_ring_fill_n(struct ath10k_htt *htt, int num) htt 200 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&htt->rx_ring.lock); htt 201 drivers/net/wireless/ath/ath10k/htt_rx.c return __ath10k_htt_rx_ring_fill_n(htt, num); htt 204 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_msdu_buff_replenish(struct ath10k_htt *htt) htt 224 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&htt->rx_ring.lock); htt 225 drivers/net/wireless/ath/ath10k/htt_rx.c num_deficit = htt->rx_ring.fill_level - htt->rx_ring.fill_cnt; htt 228 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_ring_fill_n(htt, num_to_fill); htt 236 drivers/net/wireless/ath/ath10k/htt_rx.c mod_timer(&htt->rx_ring.refill_retry_timer, jiffies + htt 239 drivers/net/wireless/ath/ath10k/htt_rx.c mod_timer(&htt->rx_ring.refill_retry_timer, jiffies + htt 242 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&htt->rx_ring.lock); htt 247 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = from_timer(htt, t, rx_ring.refill_retry_timer); htt 249 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_msdu_buff_replenish(htt); htt 254 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; htt 260 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&htt->rx_ring.lock); htt 261 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_ring_fill_n(htt, (htt->rx_ring.fill_level - htt 262 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_cnt)); htt 265 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_ring_free(htt); htt 267 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&htt->rx_ring.lock); htt 272 drivers/net/wireless/ath/ath10k/htt_rx.c void ath10k_htt_rx_free(struct ath10k_htt *htt) htt 274 drivers/net/wireless/ath/ath10k/htt_rx.c if (htt->ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) htt 277 drivers/net/wireless/ath/ath10k/htt_rx.c del_timer_sync(&htt->rx_ring.refill_retry_timer); htt 279 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_purge(&htt->rx_msdus_q); htt 280 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_purge(&htt->rx_in_ord_compl_q); htt 281 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_purge(&htt->tx_fetch_ind_q); htt 283 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&htt->rx_ring.lock); htt 284 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_ring_free(htt); htt 285 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&htt->rx_ring.lock); htt 287 drivers/net/wireless/ath/ath10k/htt_rx.c dma_free_coherent(htt->ar->dev, htt 288 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_get_rx_ring_size(htt), htt 289 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_get_vaddr_ring(htt), htt 290 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.base_paddr); htt 292 drivers/net/wireless/ath/ath10k/htt_rx.c dma_free_coherent(htt->ar->dev, htt 293 drivers/net/wireless/ath/ath10k/htt_rx.c sizeof(*htt->rx_ring.alloc_idx.vaddr), htt 294 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.alloc_idx.vaddr, htt 295 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.alloc_idx.paddr); htt 297 drivers/net/wireless/ath/ath10k/htt_rx.c kfree(htt->rx_ring.netbufs_ring); htt 300 drivers/net/wireless/ath/ath10k/htt_rx.c static inline struct sk_buff *ath10k_htt_rx_netbuf_pop(struct ath10k_htt *htt) htt 302 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 306 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&htt->rx_ring.lock); htt 308 drivers/net/wireless/ath/ath10k/htt_rx.c if (htt->rx_ring.fill_cnt == 0) { htt 313 drivers/net/wireless/ath/ath10k/htt_rx.c idx = htt->rx_ring.sw_rd_idx.msdu_payld; htt 314 drivers/net/wireless/ath/ath10k/htt_rx.c msdu = htt->rx_ring.netbufs_ring[idx]; htt 315 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.netbufs_ring[idx] = NULL; htt 316 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_reset_paddrs_ring(htt, idx); htt 319 drivers/net/wireless/ath/ath10k/htt_rx.c idx &= htt->rx_ring.size_mask; htt 320 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.sw_rd_idx.msdu_payld = idx; htt 321 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_cnt--; htt 323 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, htt 334 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt, htt 337 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 342 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&htt->rx_ring.lock); htt 347 drivers/net/wireless/ath/ath10k/htt_rx.c msdu = ath10k_htt_rx_netbuf_pop(htt); htt 393 drivers/net/wireless/ath/ath10k/htt_rx.c msdu = ath10k_htt_rx_netbuf_pop(htt); htt 435 drivers/net/wireless/ath/ath10k/htt_rx.c static struct sk_buff *ath10k_htt_rx_pop_paddr(struct ath10k_htt *htt, htt 438 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 442 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&htt->rx_ring.lock); htt 450 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_cnt--; htt 452 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, rxcb->paddr, htt 470 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_handle_amsdu_mon_32(struct ath10k_htt *htt, htt 474 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 503 drivers/net/wireless/ath/ath10k/htt_rx.c frag_buf = ath10k_htt_rx_pop_paddr(htt, paddr); htt 518 drivers/net/wireless/ath/ath10k/htt_rx.c frag_buf = ath10k_htt_rx_pop_paddr(htt, paddr); htt 546 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_handle_amsdu_mon_64(struct ath10k_htt *htt, htt 550 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 579 drivers/net/wireless/ath/ath10k/htt_rx.c frag_buf = ath10k_htt_rx_pop_paddr(htt, paddr); htt 594 drivers/net/wireless/ath/ath10k/htt_rx.c frag_buf = ath10k_htt_rx_pop_paddr(htt, paddr); htt 621 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_pop_paddr32_list(struct ath10k_htt *htt, htt 625 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 633 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&htt->rx_ring.lock); htt 641 drivers/net/wireless/ath/ath10k/htt_rx.c msdu = ath10k_htt_rx_pop_paddr(htt, paddr); htt 648 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_handle_amsdu_mon_32(htt, msdu, htt 672 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(htt->ar, "tried to pop an incomplete frame, oops!\n"); htt 683 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_pop_paddr64_list(struct ath10k_htt *htt, htt 687 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 695 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&htt->rx_ring.lock); htt 702 drivers/net/wireless/ath/ath10k/htt_rx.c msdu = ath10k_htt_rx_pop_paddr(htt, paddr); htt 709 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_handle_amsdu_mon_64(htt, msdu, htt 733 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(htt->ar, "tried to pop an incomplete frame, oops!\n"); htt 744 drivers/net/wireless/ath/ath10k/htt_rx.c int ath10k_htt_rx_alloc(struct ath10k_htt *htt) htt 746 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 750 drivers/net/wireless/ath/ath10k/htt_rx.c struct timer_list *timer = &htt->rx_ring.refill_retry_timer; htt 755 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_confused = false; htt 760 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.size = HTT_RX_RING_SIZE; htt 761 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.size_mask = htt->rx_ring.size - 1; htt 762 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_level = ar->hw_params.rx_ring_fill_level; htt 764 drivers/net/wireless/ath/ath10k/htt_rx.c if (!is_power_of_2(htt->rx_ring.size)) { htt 769 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.netbufs_ring = htt 770 drivers/net/wireless/ath/ath10k/htt_rx.c kcalloc(htt->rx_ring.size, sizeof(struct sk_buff *), htt 772 drivers/net/wireless/ath/ath10k/htt_rx.c if (!htt->rx_ring.netbufs_ring) htt 775 drivers/net/wireless/ath/ath10k/htt_rx.c size = ath10k_htt_get_rx_ring_size(htt); htt 777 drivers/net/wireless/ath/ath10k/htt_rx.c vaddr_ring = dma_alloc_coherent(htt->ar->dev, size, &paddr, GFP_KERNEL); htt 781 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_config_paddrs_ring(htt, vaddr_ring); htt 782 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.base_paddr = paddr; htt 784 drivers/net/wireless/ath/ath10k/htt_rx.c vaddr = dma_alloc_coherent(htt->ar->dev, htt 785 drivers/net/wireless/ath/ath10k/htt_rx.c sizeof(*htt->rx_ring.alloc_idx.vaddr), htt 790 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.alloc_idx.vaddr = vaddr; htt 791 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.alloc_idx.paddr = paddr; htt 792 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.sw_rd_idx.msdu_payld = htt->rx_ring.size_mask; htt 793 drivers/net/wireless/ath/ath10k/htt_rx.c *htt->rx_ring.alloc_idx.vaddr = 0; htt 798 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_init(&htt->rx_ring.lock); htt 800 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_cnt = 0; htt 801 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.sw_rd_idx.msdu_payld = 0; htt 802 drivers/net/wireless/ath/ath10k/htt_rx.c hash_init(htt->rx_ring.skb_table); htt 804 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_head_init(&htt->rx_msdus_q); htt 805 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_head_init(&htt->rx_in_ord_compl_q); htt 806 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_head_init(&htt->tx_fetch_ind_q); htt 807 drivers/net/wireless/ath/ath10k/htt_rx.c atomic_set(&htt->num_mpdus_ready, 0); htt 810 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.size, htt->rx_ring.fill_level); htt 814 drivers/net/wireless/ath/ath10k/htt_rx.c dma_free_coherent(htt->ar->dev, htt 815 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_get_rx_ring_size(htt), htt 817 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.base_paddr); htt 819 drivers/net/wireless/ath/ath10k/htt_rx.c kfree(htt->rx_ring.netbufs_ring); htt 1277 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_tail(&ar->htt.rx_msdus_q, skb); htt 2011 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_handle_amsdu(struct ath10k_htt *htt) htt 2013 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 2014 drivers/net/wireless/ath/ath10k/htt_rx.c struct ieee80211_rx_status *rx_status = &htt->rx_status; htt 2026 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&htt->rx_ring.lock); htt 2027 drivers/net/wireless/ath/ath10k/htt_rx.c if (htt->rx_confused) { htt 2028 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&htt->rx_ring.lock); htt 2031 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_amsdu_pop(htt, &amsdu); htt 2032 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&htt->rx_ring.lock); htt 2040 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_confused = true; htt 2144 drivers/net/wireless/ath/ath10k/htt_rx.c static bool ath10k_htt_rx_proc_rx_ind_hl(struct ath10k_htt *htt, htt 2150 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 2438 drivers/net/wireless/ath/ath10k/htt_rx.c static bool ath10k_htt_rx_proc_rx_frag_ind_hl(struct ath10k_htt *htt, htt 2442 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 2488 drivers/net/wireless/ath/ath10k/htt_rx.c return ath10k_htt_rx_proc_rx_ind_hl(htt, &resp->rx_ind_hl, skb, htt 2552 drivers/net/wireless/ath/ath10k/htt_rx.c return ath10k_htt_rx_proc_rx_ind_hl(htt, &resp->rx_ind_hl, skb, htt 2579 drivers/net/wireless/ath/ath10k/htt_rx.c return ath10k_htt_rx_proc_rx_ind_hl(htt, &resp->rx_ind_hl, skb, htt 2591 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_proc_rx_ind_ll(struct ath10k_htt *htt, htt 2594 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 2614 drivers/net/wireless/ath/ath10k/htt_rx.c atomic_add(mpdu_count, &htt->num_mpdus_ready); htt 2623 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; htt 2692 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_txrx_tx_unref(htt, &tx_done); htt 2693 drivers/net/wireless/ath/ath10k/htt_rx.c } else if (!kfifo_put(&htt->txdone_fifo, tx_done)) { htt 2696 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_txrx_tx_unref(htt, &tx_done); htt 2879 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; htt 2880 drivers/net/wireless/ath/ath10k/htt_rx.c struct ieee80211_rx_status *status = &htt->rx_status; htt 2928 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; htt 2930 drivers/net/wireless/ath/ath10k/htt_rx.c struct ieee80211_rx_status *status = &htt->rx_status; htt 2941 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&htt->rx_ring.lock); htt 2943 drivers/net/wireless/ath/ath10k/htt_rx.c if (htt->rx_confused) htt 2971 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_pop_paddr64_list(htt, &resp->rx_in_ord_ind, htt 2974 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_pop_paddr32_list(htt, &resp->rx_in_ord_ind, htt 2979 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_confused = true; htt 3011 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_confused = true; htt 3082 drivers/net/wireless/ath/ath10k/htt_rx.c if (!ar->htt.tx_q_state.enabled) { htt 3087 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->htt.tx_q_state.mode == HTT_TX_MODE_SWITCH_PUSH) { htt 3106 drivers/net/wireless/ath/ath10k/htt_rx.c if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || htt 3107 drivers/net/wireless/ath/ath10k/htt_rx.c unlikely(tid >= ar->htt.tx_q_state.num_tids)) { htt 3258 drivers/net/wireless/ath/ath10k/htt_rx.c ar->htt.tx_q_state.enabled = enable; htt 3259 drivers/net/wireless/ath/ath10k/htt_rx.c ar->htt.tx_q_state.mode = mode; htt 3260 drivers/net/wireless/ath/ath10k/htt_rx.c ar->htt.tx_q_state.num_push_allowed = threshold; htt 3270 drivers/net/wireless/ath/ath10k/htt_rx.c if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || htt 3271 drivers/net/wireless/ath/ath10k/htt_rx.c unlikely(tid >= ar->htt.tx_q_state.num_tids)) { htt 3291 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->htt.tx_lock); htt 3294 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->htt.tx_lock); htt 3728 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; htt 3739 drivers/net/wireless/ath/ath10k/htt_rx.c if (resp->hdr.msg_type >= ar->htt.t2h_msg_types_max) { htt 3741 drivers/net/wireless/ath/ath10k/htt_rx.c resp->hdr.msg_type, ar->htt.t2h_msg_types_max); htt 3744 drivers/net/wireless/ath/ath10k/htt_rx.c type = ar->htt.t2h_msg_types[resp->hdr.msg_type]; htt 3748 drivers/net/wireless/ath/ath10k/htt_rx.c htt->target_version_major = resp->ver_resp.major; htt 3749 drivers/net/wireless/ath/ath10k/htt_rx.c htt->target_version_minor = resp->ver_resp.minor; htt 3750 drivers/net/wireless/ath/ath10k/htt_rx.c complete(&htt->target_version_received); htt 3755 drivers/net/wireless/ath/ath10k/htt_rx.c return ath10k_htt_rx_proc_rx_ind_hl(htt, htt 3761 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_proc_rx_ind_ll(htt, &resp->rx_ind); htt 3769 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_peer_map_event(htt, &ev); htt 3776 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_peer_unmap_event(htt, &ev); htt 3806 drivers/net/wireless/ath/ath10k/htt_rx.c status = ath10k_txrx_tx_unref(htt, &tx_done); htt 3808 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&htt->tx_lock); htt 3809 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_tx_mgmt_dec_pending(htt); htt 3810 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&htt->tx_lock); htt 3815 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_tx_compl_ind(htt->ar, skb); htt 3818 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 3833 drivers/net/wireless/ath/ath10k/htt_rx.c atomic_inc(&htt->num_mpdus_ready); htt 3835 drivers/net/wireless/ath/ath10k/htt_rx.c return ath10k_htt_rx_proc_rx_frag_ind(htt, htt 3877 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_tail(&htt->rx_in_ord_compl_q, skb); htt 3901 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_tail(&htt->tx_fetch_ind_q, tx_fetch_ind); htt 3938 drivers/net/wireless/ath/ath10k/htt_rx.c if (skb_queue_empty(&ar->htt.rx_msdus_q)) htt 3941 drivers/net/wireless/ath/ath10k/htt_rx.c skb = skb_dequeue(&ar->htt.rx_msdus_q); htt 3953 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; htt 3972 drivers/net/wireless/ath/ath10k/htt_rx.c while ((skb = skb_dequeue(&htt->rx_in_ord_compl_q))) { htt 3973 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&htt->rx_ring.lock); htt 3975 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&htt->rx_ring.lock); htt 3984 drivers/net/wireless/ath/ath10k/htt_rx.c while (atomic_read(&htt->num_mpdus_ready)) { htt 3985 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_handle_amsdu(htt); htt 3990 drivers/net/wireless/ath/ath10k/htt_rx.c atomic_dec(&htt->num_mpdus_ready); htt 4001 drivers/net/wireless/ath/ath10k/htt_rx.c if ((quota < budget) && !kfifo_is_empty(&htt->txdone_fifo)) htt 4009 drivers/net/wireless/ath/ath10k/htt_rx.c while (kfifo_get(&htt->txdone_fifo, &tx_done)) htt 4010 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_txrx_tx_unref(htt, &tx_done); htt 4014 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_irqsave(&htt->tx_fetch_ind_q.lock, flags); htt 4015 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_splice_init(&htt->tx_fetch_ind_q, &tx_ind_q); htt 4016 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_irqrestore(&htt->tx_fetch_ind_q.lock, flags); htt 4024 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_msdu_buff_replenish(htt); htt 4054 drivers/net/wireless/ath/ath10k/htt_rx.c void ath10k_htt_set_rx_ops(struct ath10k_htt *htt) htt 4056 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; htt 4059 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ops = &htt_rx_ops_hl; htt 4061 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ops = &htt_rx_ops_64; htt 4063 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ops = &htt_rx_ops_32; htt 51 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&ar->htt.tx_lock); htt 53 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->htt.tx_q_state.enabled) htt 56 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH_PULL) htt 73 drivers/net/wireless/ath/ath10k/htt_tx.c if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || htt 74 drivers/net/wireless/ath/ath10k/htt_tx.c unlikely(tid >= ar->htt.tx_q_state.num_tids)) { htt 80 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->count[tid][peer_id] = count; htt 81 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->map[tid][idx] &= ~bit; htt 82 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->map[tid][idx] |= count ? bit : 0; htt 93 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&ar->htt.tx_lock); htt 95 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->htt.tx_q_state.enabled) htt 98 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH_PULL) htt 101 drivers/net/wireless/ath/ath10k/htt_tx.c seq = le32_to_cpu(ar->htt.tx_q_state.vaddr->seq); htt 103 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->seq = cpu_to_le32(seq); htt 108 drivers/net/wireless/ath/ath10k/htt_tx.c size = sizeof(*ar->htt.tx_q_state.vaddr); htt 110 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.paddr, htt 120 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&ar->htt.tx_lock); htt 122 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&ar->htt.tx_lock); htt 127 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&ar->htt.tx_lock); htt 129 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&ar->htt.tx_lock); htt 137 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&ar->htt.tx_lock); htt 140 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&ar->htt.tx_lock); htt 143 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_tx_dec_pending(struct ath10k_htt *htt) htt 145 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&htt->tx_lock); htt 147 drivers/net/wireless/ath/ath10k/htt_tx.c htt->num_pending_tx--; htt 148 drivers/net/wireless/ath/ath10k/htt_tx.c if (htt->num_pending_tx == htt->max_num_pending_tx - 1) htt 149 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_mac_tx_unlock(htt->ar, ATH10K_TX_PAUSE_Q_FULL); htt 152 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_tx_inc_pending(struct ath10k_htt *htt) htt 154 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&htt->tx_lock); htt 156 drivers/net/wireless/ath/ath10k/htt_tx.c if (htt->num_pending_tx >= htt->max_num_pending_tx) htt 159 drivers/net/wireless/ath/ath10k/htt_tx.c htt->num_pending_tx++; htt 160 drivers/net/wireless/ath/ath10k/htt_tx.c if (htt->num_pending_tx == htt->max_num_pending_tx) htt 161 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_mac_tx_lock(htt->ar, ATH10K_TX_PAUSE_Q_FULL); htt 166 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_tx_mgmt_inc_pending(struct ath10k_htt *htt, bool is_mgmt, htt 169 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 171 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&htt->tx_lock); htt 177 drivers/net/wireless/ath/ath10k/htt_tx.c ar->hw_params.max_probe_resp_desc_thres < htt->num_pending_mgmt_tx) htt 180 drivers/net/wireless/ath/ath10k/htt_tx.c htt->num_pending_mgmt_tx++; htt 185 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_tx_mgmt_dec_pending(struct ath10k_htt *htt) htt 187 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&htt->tx_lock); htt 189 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->ar->hw_params.max_probe_resp_desc_thres) htt 192 drivers/net/wireless/ath/ath10k/htt_tx.c htt->num_pending_mgmt_tx--; htt 195 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_tx_alloc_msdu_id(struct ath10k_htt *htt, struct sk_buff *skb) htt 197 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 200 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&htt->tx_lock); htt 201 drivers/net/wireless/ath/ath10k/htt_tx.c ret = idr_alloc(&htt->pending_tx, skb, 0, htt 202 drivers/net/wireless/ath/ath10k/htt_tx.c htt->max_num_pending_tx, GFP_ATOMIC); htt 203 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&htt->tx_lock); htt 210 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_tx_free_msdu_id(struct ath10k_htt *htt, u16 msdu_id) htt 212 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 214 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&htt->tx_lock); htt 218 drivers/net/wireless/ath/ath10k/htt_tx.c idr_remove(&htt->pending_tx, msdu_id); htt 221 drivers/net/wireless/ath/ath10k/htt_tx.c static void ath10k_htt_tx_free_cont_txbuf_32(struct ath10k_htt *htt) htt 223 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 226 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->txbuf.vaddr_txbuff_32) htt 229 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->txbuf.size; htt 230 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(ar->dev, size, htt->txbuf.vaddr_txbuff_32, htt 231 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.paddr); htt 232 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.vaddr_txbuff_32 = NULL; htt 235 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_alloc_cont_txbuf_32(struct ath10k_htt *htt) htt 237 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 240 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->max_num_pending_tx * htt 243 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.vaddr_txbuff_32 = dma_alloc_coherent(ar->dev, size, htt 244 drivers/net/wireless/ath/ath10k/htt_tx.c &htt->txbuf.paddr, htt 246 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->txbuf.vaddr_txbuff_32) htt 249 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.size = size; htt 254 drivers/net/wireless/ath/ath10k/htt_tx.c static void ath10k_htt_tx_free_cont_txbuf_64(struct ath10k_htt *htt) htt 256 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 259 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->txbuf.vaddr_txbuff_64) htt 262 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->txbuf.size; htt 263 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(ar->dev, size, htt->txbuf.vaddr_txbuff_64, htt 264 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.paddr); htt 265 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.vaddr_txbuff_64 = NULL; htt 268 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_alloc_cont_txbuf_64(struct ath10k_htt *htt) htt 270 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 273 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->max_num_pending_tx * htt 276 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.vaddr_txbuff_64 = dma_alloc_coherent(ar->dev, size, htt 277 drivers/net/wireless/ath/ath10k/htt_tx.c &htt->txbuf.paddr, htt 279 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->txbuf.vaddr_txbuff_64) htt 282 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.size = size; htt 287 drivers/net/wireless/ath/ath10k/htt_tx.c static void ath10k_htt_tx_free_cont_frag_desc_32(struct ath10k_htt *htt) htt 291 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->frag_desc.vaddr_desc_32) htt 294 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->max_num_pending_tx * htt 297 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(htt->ar->dev, htt 299 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_32, htt 300 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.paddr); htt 302 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_32 = NULL; htt 305 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_alloc_cont_frag_desc_32(struct ath10k_htt *htt) htt 307 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 313 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->max_num_pending_tx * htt 315 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_32 = dma_alloc_coherent(ar->dev, size, htt 316 drivers/net/wireless/ath/ath10k/htt_tx.c &htt->frag_desc.paddr, htt 318 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->frag_desc.vaddr_desc_32) { htt 322 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.size = size; htt 327 drivers/net/wireless/ath/ath10k/htt_tx.c static void ath10k_htt_tx_free_cont_frag_desc_64(struct ath10k_htt *htt) htt 331 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->frag_desc.vaddr_desc_64) htt 334 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->max_num_pending_tx * htt 337 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(htt->ar->dev, htt 339 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_64, htt 340 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.paddr); htt 342 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_64 = NULL; htt 345 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_alloc_cont_frag_desc_64(struct ath10k_htt *htt) htt 347 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 353 drivers/net/wireless/ath/ath10k/htt_tx.c size = htt->max_num_pending_tx * htt 356 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_64 = dma_alloc_coherent(ar->dev, size, htt 357 drivers/net/wireless/ath/ath10k/htt_tx.c &htt->frag_desc.paddr, htt 359 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->frag_desc.vaddr_desc_64) { htt 363 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.size = size; htt 368 drivers/net/wireless/ath/ath10k/htt_tx.c static void ath10k_htt_tx_free_txq(struct ath10k_htt *htt) htt 370 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 377 drivers/net/wireless/ath/ath10k/htt_tx.c size = sizeof(*htt->tx_q_state.vaddr); htt 379 drivers/net/wireless/ath/ath10k/htt_tx.c dma_unmap_single(ar->dev, htt->tx_q_state.paddr, size, DMA_TO_DEVICE); htt 380 drivers/net/wireless/ath/ath10k/htt_tx.c kfree(htt->tx_q_state.vaddr); htt 383 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_alloc_txq(struct ath10k_htt *htt) htt 385 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 393 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_q_state.num_peers = HTT_TX_Q_STATE_NUM_PEERS; htt 394 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_q_state.num_tids = HTT_TX_Q_STATE_NUM_TIDS; htt 395 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_q_state.type = HTT_Q_DEPTH_TYPE_BYTES; htt 397 drivers/net/wireless/ath/ath10k/htt_tx.c size = sizeof(*htt->tx_q_state.vaddr); htt 398 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_q_state.vaddr = kzalloc(size, GFP_KERNEL); htt 399 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->tx_q_state.vaddr) htt 402 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_q_state.paddr = dma_map_single(ar->dev, htt->tx_q_state.vaddr, htt 404 drivers/net/wireless/ath/ath10k/htt_tx.c ret = dma_mapping_error(ar->dev, htt->tx_q_state.paddr); htt 407 drivers/net/wireless/ath/ath10k/htt_tx.c kfree(htt->tx_q_state.vaddr); htt 414 drivers/net/wireless/ath/ath10k/htt_tx.c static void ath10k_htt_tx_free_txdone_fifo(struct ath10k_htt *htt) htt 416 drivers/net/wireless/ath/ath10k/htt_tx.c WARN_ON(!kfifo_is_empty(&htt->txdone_fifo)); htt 417 drivers/net/wireless/ath/ath10k/htt_tx.c kfifo_free(&htt->txdone_fifo); htt 420 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_alloc_txdone_fifo(struct ath10k_htt *htt) htt 425 drivers/net/wireless/ath/ath10k/htt_tx.c size = roundup_pow_of_two(htt->max_num_pending_tx); htt 426 drivers/net/wireless/ath/ath10k/htt_tx.c ret = kfifo_alloc(&htt->txdone_fifo, size, GFP_KERNEL); htt 430 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_alloc_buf(struct ath10k_htt *htt) htt 432 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 435 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htt_alloc_txbuff(htt); htt 441 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htt_alloc_frag_desc(htt); htt 447 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htt_tx_alloc_txq(htt); htt 453 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htt_tx_alloc_txdone_fifo(htt); htt 462 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_free_txq(htt); htt 465 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_free_frag_desc(htt); htt 468 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_free_txbuff(htt); htt 473 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_tx_start(struct ath10k_htt *htt) htt 475 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 479 drivers/net/wireless/ath/ath10k/htt_tx.c htt->max_num_pending_tx); htt 481 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_init(&htt->tx_lock); htt 482 drivers/net/wireless/ath/ath10k/htt_tx.c idr_init(&htt->pending_tx); htt 484 drivers/net/wireless/ath/ath10k/htt_tx.c if (htt->tx_mem_allocated) htt 490 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htt_tx_alloc_buf(htt); htt 494 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_mem_allocated = true; htt 499 drivers/net/wireless/ath/ath10k/htt_tx.c idr_destroy(&htt->pending_tx); htt 507 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k_htt *htt = &ar->htt; htt 515 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_txrx_tx_unref(htt, &tx_done); htt 520 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_tx_destroy(struct ath10k_htt *htt) htt 522 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->tx_mem_allocated) htt 525 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_free_txbuff(htt); htt 526 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_free_txq(htt); htt 527 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_free_frag_desc(htt); htt 528 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_free_txdone_fifo(htt); htt 529 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_mem_allocated = false; htt 532 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_tx_stop(struct ath10k_htt *htt) htt 534 drivers/net/wireless/ath/ath10k/htt_tx.c idr_for_each(&htt->pending_tx, ath10k_htt_tx_clean_up_pending, htt->ar); htt 535 drivers/net/wireless/ath/ath10k/htt_tx.c idr_destroy(&htt->pending_tx); htt 538 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_tx_free(struct ath10k_htt *htt) htt 540 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_stop(htt); htt 541 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_destroy(htt); htt 555 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_h2t_ver_req_msg(struct ath10k_htt *htt) htt 557 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 574 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 583 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_h2t_stats_req(struct ath10k_htt *htt, u32 mask, u32 reset_mask, htt 586 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 616 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 627 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_send_frag_desc_bank_cfg_32(struct ath10k_htt *htt) htt 629 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 639 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->frag_desc.paddr) { htt 654 drivers/net/wireless/ath/ath10k/htt_tx.c info |= SM(htt->tx_q_state.type, htt 665 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->bank_base_addrs[0] = __cpu_to_le32(htt->frag_desc.paddr); htt 667 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->bank_id[0].bank_max_id = __cpu_to_le16(htt->max_num_pending_tx - htt 670 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->q_state.paddr = cpu_to_le32(htt->tx_q_state.paddr); htt 671 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->q_state.num_peers = cpu_to_le16(htt->tx_q_state.num_peers); htt 672 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->q_state.num_tids = cpu_to_le16(htt->tx_q_state.num_tids); htt 678 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 689 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_send_frag_desc_bank_cfg_64(struct ath10k_htt *htt) htt 691 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 701 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->frag_desc.paddr) { htt 716 drivers/net/wireless/ath/ath10k/htt_tx.c info |= SM(htt->tx_q_state.type, htt 727 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->bank_base_addrs[0] = __cpu_to_le64(htt->frag_desc.paddr); htt 729 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->bank_id[0].bank_max_id = __cpu_to_le16(htt->max_num_pending_tx - htt 732 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->q_state.paddr = cpu_to_le32(htt->tx_q_state.paddr); htt 733 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->q_state.num_peers = cpu_to_le16(htt->tx_q_state.num_peers); htt 734 drivers/net/wireless/ath/ath10k/htt_tx.c cfg->q_state.num_tids = cpu_to_le16(htt->tx_q_state.num_tids); htt 740 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 789 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_send_rx_ring_cfg_32(struct ath10k_htt *htt) htt 791 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 841 drivers/net/wireless/ath/ath10k/htt_tx.c fw_idx = __le32_to_cpu(*htt->rx_ring.alloc_idx.vaddr); htt 844 drivers/net/wireless/ath/ath10k/htt_tx.c __cpu_to_le32(htt->rx_ring.alloc_idx.paddr); htt 845 drivers/net/wireless/ath/ath10k/htt_tx.c ring->rx_ring_base_paddr = __cpu_to_le32(htt->rx_ring.base_paddr); htt 846 drivers/net/wireless/ath/ath10k/htt_tx.c ring->rx_ring_len = __cpu_to_le16(htt->rx_ring.size); htt 852 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 861 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_send_rx_ring_cfg_64(struct ath10k_htt *htt) htt 863 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 911 drivers/net/wireless/ath/ath10k/htt_tx.c fw_idx = __le32_to_cpu(*htt->rx_ring.alloc_idx.vaddr); htt 913 drivers/net/wireless/ath/ath10k/htt_tx.c ring->fw_idx_shadow_reg_paddr = __cpu_to_le64(htt->rx_ring.alloc_idx.paddr); htt 914 drivers/net/wireless/ath/ath10k/htt_tx.c ring->rx_ring_base_paddr = __cpu_to_le64(htt->rx_ring.base_paddr); htt 915 drivers/net/wireless/ath/ath10k/htt_tx.c ring->rx_ring_len = __cpu_to_le16(htt->rx_ring.size); htt 921 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 930 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_send_rx_ring_cfg_hl(struct ath10k_htt *htt) htt 932 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 972 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 981 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_h2t_aggr_cfg_msg_32(struct ath10k_htt *htt, htt 985 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 1019 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 1028 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_h2t_aggr_cfg_msg_v2(struct ath10k_htt *htt, htt 1032 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 1066 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); htt 1110 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&ar->htc, ar->htt.eid, skb); htt 1155 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_mgmt_tx(struct ath10k_htt *htt, struct sk_buff *msdu) htt 1157 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 1171 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htt_tx_alloc_msdu_id(htt, msdu); htt 1210 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htc_send(&htt->ar->htc, htt->eid, txdesc); htt 1222 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&htt->tx_lock); htt 1223 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_free_msdu_id(htt, msdu_id); htt 1224 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&htt->tx_lock); htt 1234 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_hl(struct ath10k_htt *htt, enum ath10k_hw_txrx_mode txmode, htt 1237 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 1292 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(htt->ar, ATH10K_DBG_HTT, htt 1298 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(htt->ar, "htt hl tx: Unable to realloc skb!\n"); htt 1306 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htt_tx_alloc_msdu_id(htt, msdu); htt 1337 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htc_send(&htt->ar->htc, htt->eid, msdu); htt 1343 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_32(struct ath10k_htt *htt, htt 1347 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 1368 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htt_tx_alloc_msdu_id(htt, msdu); htt 1374 drivers/net/wireless/ath/ath10k/htt_tx.c prefetch_len = min(htt->prefetch_len, msdu->len); htt 1377 drivers/net/wireless/ath/ath10k/htt_tx.c txbuf = htt->txbuf.vaddr_txbuff_32 + msdu_id; htt 1378 drivers/net/wireless/ath/ath10k/htt_tx.c txbuf_paddr = htt->txbuf.paddr + htt 1410 drivers/net/wireless/ath/ath10k/htt_tx.c ext_desc_t = htt->frag_desc.vaddr_desc_32; htt 1421 drivers/net/wireless/ath/ath10k/htt_tx.c frags_paddr = htt->frag_desc.paddr + htt 1461 drivers/net/wireless/ath/ath10k/htt_tx.c txbuf->htc_hdr.eid = htt->eid; htt 1527 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_hif_tx_sg(htt->ar, htt 1528 drivers/net/wireless/ath/ath10k/htt_tx.c htt->ar->htc.endpoint[htt->eid].ul_pipe_id, htt 1538 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_free_msdu_id(htt, msdu_id); htt 1543 drivers/net/wireless/ath/ath10k/htt_tx.c static int ath10k_htt_tx_64(struct ath10k_htt *htt, htt 1547 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 1568 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htt_tx_alloc_msdu_id(htt, msdu); htt 1574 drivers/net/wireless/ath/ath10k/htt_tx.c prefetch_len = min(htt->prefetch_len, msdu->len); htt 1577 drivers/net/wireless/ath/ath10k/htt_tx.c txbuf = htt->txbuf.vaddr_txbuff_64 + msdu_id; htt 1578 drivers/net/wireless/ath/ath10k/htt_tx.c txbuf_paddr = htt->txbuf.paddr + htt 1610 drivers/net/wireless/ath/ath10k/htt_tx.c ext_desc_t = htt->frag_desc.vaddr_desc_64; htt 1622 drivers/net/wireless/ath/ath10k/htt_tx.c frags_paddr = htt->frag_desc.paddr + htt 1663 drivers/net/wireless/ath/ath10k/htt_tx.c txbuf->htc_hdr.eid = htt->eid; htt 1734 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_hif_tx_sg(htt->ar, htt 1735 drivers/net/wireless/ath/ath10k/htt_tx.c htt->ar->htc.endpoint[htt->eid].ul_pipe_id, htt 1745 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_htt_tx_free_msdu_id(htt, msdu_id); htt 1779 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_set_tx_ops(struct ath10k_htt *htt) htt 1781 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; htt 1784 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_ops = &htt_tx_ops_hl; htt 1786 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_ops = &htt_tx_ops_64; htt 1788 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_ops = &htt_tx_ops_32; htt 632 drivers/net/wireless/ath/ath10k/hw.h int (*tx_data_rssi_pad_bytes)(struct htt_resp *htt); htt 664 drivers/net/wireless/ath/ath10k/hw.h struct htt_resp *htt) htt 667 drivers/net/wireless/ath/ath10k/hw.h return hw->hw_ops->tx_data_rssi_pad_bytes(htt); htt 3297 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); htt 3318 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); htt 3338 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); htt 3349 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); htt 3369 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); htt 3414 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 3419 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 3454 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.target_version_major < 3 && htt 3619 drivers/net/wireless/ath/ath10k/mac.c return (ar->htt.target_version_major >= 3 && htt 3620 drivers/net/wireless/ath/ath10k/mac.c ar->htt.target_version_minor >= 4 && htt 3662 drivers/net/wireless/ath/ath10k/mac.c else if (ar->htt.target_version_major >= 3) htt 3676 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_htt *htt = &ar->htt; htt 3681 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_htt_tx(htt, txmode, skb); htt 3684 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_htt_mgmt_tx(htt, skb); htt 3949 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 3950 drivers/net/wireless/ath/ath10k/mac.c idr_for_each_entry(&ar->htt.pending_tx, msdu, msdu_id) { htt 3955 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 3988 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.tx_q_state.mode == HTT_TX_MODE_SWITCH_PUSH) htt 3991 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.num_pending_tx < ar->htt.tx_q_state.num_push_allowed) htt 4050 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_htt *htt = &ar->htt; htt 4063 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 4064 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_htt_tx_inc_pending(htt); htt 4065 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4072 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 4073 drivers/net/wireless/ath/ath10k/mac.c ath10k_htt_tx_dec_pending(htt); htt 4074 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4091 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 4092 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_htt_tx_mgmt_inc_pending(htt, is_mgmt, is_presp); htt 4095 drivers/net/wireless/ath/ath10k/mac.c ath10k_htt_tx_dec_pending(htt); htt 4096 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4099 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4106 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 4107 drivers/net/wireless/ath/ath10k/mac.c ath10k_htt_tx_dec_pending(htt); htt 4109 drivers/net/wireless/ath/ath10k/mac.c ath10k_htt_tx_mgmt_dec_pending(htt); htt 4110 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4115 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 4117 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4149 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH) htt 4152 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.num_pending_tx >= (ar->htt.max_num_pending_tx / 2)) htt 4335 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_htt *htt = &ar->htt; htt 4359 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 4362 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_htt_tx_inc_pending(htt); htt 4366 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4371 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_htt_tx_mgmt_inc_pending(htt, is_mgmt, is_presp); htt 4375 drivers/net/wireless/ath/ath10k/mac.c ath10k_htt_tx_dec_pending(htt); htt 4376 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4380 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4387 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 4388 drivers/net/wireless/ath/ath10k/mac.c ath10k_htt_tx_dec_pending(htt); htt 4390 drivers/net/wireless/ath/ath10k/mac.c ath10k_htt_tx_mgmt_dec_pending(htt); htt 4391 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 4405 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH) htt 5450 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 5453 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 5597 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 5599 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 7051 drivers/net/wireless/ath/ath10k/mac.c time_left = wait_event_timeout(ar->htt.empty_tx_wq, ({ htt 7054 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); htt 7055 drivers/net/wireless/ath/ath10k/mac.c empty = (ar->htt.num_pending_tx == 0); htt 7056 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); htt 43 drivers/net/wireless/ath/ath10k/txrx.c int ath10k_txrx_tx_unref(struct ath10k_htt *htt, htt 46 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k *ar = htt->ar; htt 58 drivers/net/wireless/ath/ath10k/txrx.c if (tx_done->msdu_id >= htt->max_num_pending_tx) { htt 64 drivers/net/wireless/ath/ath10k/txrx.c spin_lock_bh(&htt->tx_lock); htt 65 drivers/net/wireless/ath/ath10k/txrx.c msdu = idr_find(&htt->pending_tx, tx_done->msdu_id); htt 69 drivers/net/wireless/ath/ath10k/txrx.c spin_unlock_bh(&htt->tx_lock); htt 81 drivers/net/wireless/ath/ath10k/txrx.c ath10k_htt_tx_free_msdu_id(htt, tx_done->msdu_id); htt 82 drivers/net/wireless/ath/ath10k/txrx.c ath10k_htt_tx_dec_pending(htt); htt 83 drivers/net/wireless/ath/ath10k/txrx.c if (htt->num_pending_tx == 0) htt 84 drivers/net/wireless/ath/ath10k/txrx.c wake_up(&htt->empty_tx_wq); htt 85 drivers/net/wireless/ath/ath10k/txrx.c spin_unlock_bh(&htt->tx_lock); htt 94 drivers/net/wireless/ath/ath10k/txrx.c ath10k_report_offchan_tx(htt->ar, msdu); htt 126 drivers/net/wireless/ath/ath10k/txrx.c ieee80211_tx_status(htt->ar->hw, msdu); htt 199 drivers/net/wireless/ath/ath10k/txrx.c void ath10k_peer_map_event(struct ath10k_htt *htt, htt 202 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k *ar = htt->ar; htt 235 drivers/net/wireless/ath/ath10k/txrx.c void ath10k_peer_unmap_event(struct ath10k_htt *htt, htt 238 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k *ar = htt->ar; htt 11 drivers/net/wireless/ath/ath10k/txrx.h int ath10k_txrx_tx_unref(struct ath10k_htt *htt, htt 22 drivers/net/wireless/ath/ath10k/txrx.h void ath10k_peer_map_event(struct ath10k_htt *htt, htt 24 drivers/net/wireless/ath/ath10k/txrx.h void ath10k_peer_unmap_event(struct ath10k_htt *htt, htt 1775 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->num_msdu_desc = __cpu_to_le32(ar->htt.max_num_pending_tx); htt 6719 drivers/net/wireless/ath/ath10k/wmi.c config.num_msdu_desc = __cpu_to_le32(ar->htt.max_num_pending_tx);