txo 790 drivers/net/ethernet/emulex/benet/be.h #define tx_stats(txo) (&(txo)->stats) txo 804 drivers/net/ethernet/emulex/benet/be.h #define for_all_tx_queues(adapter, txo, i) \ txo 805 drivers/net/ethernet/emulex/benet/be.h for (i = 0, txo = &adapter->tx_obj[i]; i < adapter->num_tx_qs; \ txo 806 drivers/net/ethernet/emulex/benet/be.h i++, txo++) txo 816 drivers/net/ethernet/emulex/benet/be.h #define for_all_tx_queues_on_eq(adapter, eqo, txo, i) \ txo 817 drivers/net/ethernet/emulex/benet/be.h for (i = eqo->idx, txo = &adapter->tx_obj[i]; i < adapter->num_tx_qs;\ txo 818 drivers/net/ethernet/emulex/benet/be.h i += adapter->num_evt_qs, txo += adapter->num_evt_qs) txo 1357 drivers/net/ethernet/emulex/benet/be_cmds.c int be_cmd_txq_create(struct be_adapter *adapter, struct be_tx_obj *txo) txo 1361 drivers/net/ethernet/emulex/benet/be_cmds.c struct be_queue_info *txq = &txo->q; txo 1362 drivers/net/ethernet/emulex/benet/be_cmds.c struct be_queue_info *cq = &txo->cq; txo 1395 drivers/net/ethernet/emulex/benet/be_cmds.c txo->db_offset = le32_to_cpu(resp->db_offset); txo 1397 drivers/net/ethernet/emulex/benet/be_cmds.c txo->db_offset = DB_TXULP1_OFFSET; txo 2401 drivers/net/ethernet/emulex/benet/be_cmds.h int be_cmd_txq_create(struct be_adapter *adapter, struct be_tx_obj *txo); txo 375 drivers/net/ethernet/emulex/benet/be_ethtool.c struct be_tx_obj *txo; txo 401 drivers/net/ethernet/emulex/benet/be_ethtool.c for_all_tx_queues(adapter, txo, j) { txo 402 drivers/net/ethernet/emulex/benet/be_ethtool.c struct be_tx_stats *stats = tx_stats(txo); txo 222 drivers/net/ethernet/emulex/benet/be_main.c static void be_txq_notify(struct be_adapter *adapter, struct be_tx_obj *txo, txo 230 drivers/net/ethernet/emulex/benet/be_main.c val |= txo->q.id & DB_TXULP_RING_ID_MASK; txo 234 drivers/net/ethernet/emulex/benet/be_main.c iowrite32(val, adapter->db + txo->db_offset); txo 660 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 680 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues(adapter, txo, i) { txo 681 drivers/net/ethernet/emulex/benet/be_main.c const struct be_tx_stats *tx_stats = tx_stats(txo); txo 685 drivers/net/ethernet/emulex/benet/be_main.c pkts = tx_stats(txo)->tx_pkts; txo 686 drivers/net/ethernet/emulex/benet/be_main.c bytes = tx_stats(txo)->tx_bytes; txo 746 drivers/net/ethernet/emulex/benet/be_main.c static void be_tx_stats_update(struct be_tx_obj *txo, struct sk_buff *skb) txo 748 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_stats *stats = tx_stats(txo); txo 817 drivers/net/ethernet/emulex/benet/be_main.c static inline bool be_is_txq_full(struct be_tx_obj *txo) txo 819 drivers/net/ethernet/emulex/benet/be_main.c return atomic_read(&txo->q.used) + BE_MAX_TX_FRAG_COUNT >= txo->q.len; txo 822 drivers/net/ethernet/emulex/benet/be_main.c static inline bool be_can_txq_wake(struct be_tx_obj *txo) txo 824 drivers/net/ethernet/emulex/benet/be_main.c return atomic_read(&txo->q.used) < txo->q.len / 2; txo 827 drivers/net/ethernet/emulex/benet/be_main.c static inline bool be_is_tx_compl_pending(struct be_tx_obj *txo) txo 829 drivers/net/ethernet/emulex/benet/be_main.c return atomic_read(&txo->q.used) > txo->pend_wrb_cnt; txo 919 drivers/net/ethernet/emulex/benet/be_main.c static u32 be_tx_get_wrb_hdr(struct be_tx_obj *txo) txo 921 drivers/net/ethernet/emulex/benet/be_main.c u32 head = txo->q.head; txo 923 drivers/net/ethernet/emulex/benet/be_main.c queue_head_inc(&txo->q); txo 929 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo, txo 934 drivers/net/ethernet/emulex/benet/be_main.c struct be_queue_info *txq = &txo->q; txo 940 drivers/net/ethernet/emulex/benet/be_main.c BUG_ON(txo->sent_skb_list[head]); txo 941 drivers/net/ethernet/emulex/benet/be_main.c txo->sent_skb_list[head] = skb; txo 942 drivers/net/ethernet/emulex/benet/be_main.c txo->last_req_hdr = head; txo 944 drivers/net/ethernet/emulex/benet/be_main.c txo->last_req_wrb_cnt = num_frags; txo 945 drivers/net/ethernet/emulex/benet/be_main.c txo->pend_wrb_cnt += num_frags; txo 949 drivers/net/ethernet/emulex/benet/be_main.c static void be_tx_setup_wrb_frag(struct be_tx_obj *txo, dma_addr_t busaddr, txo 953 drivers/net/ethernet/emulex/benet/be_main.c struct be_queue_info *txq = &txo->q; txo 965 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo, u32 head, bool map_single, txo 970 drivers/net/ethernet/emulex/benet/be_main.c struct be_queue_info *txq = &txo->q; txo 992 drivers/net/ethernet/emulex/benet/be_main.c static u32 be_xmit_enqueue(struct be_adapter *adapter, struct be_tx_obj *txo, txo 1003 drivers/net/ethernet/emulex/benet/be_main.c head = be_tx_get_wrb_hdr(txo); txo 1012 drivers/net/ethernet/emulex/benet/be_main.c be_tx_setup_wrb_frag(txo, busaddr, len); txo 1023 drivers/net/ethernet/emulex/benet/be_main.c be_tx_setup_wrb_frag(txo, busaddr, len); txo 1027 drivers/net/ethernet/emulex/benet/be_main.c be_tx_setup_wrb_hdr(adapter, txo, wrb_params, skb, head); txo 1029 drivers/net/ethernet/emulex/benet/be_main.c be_tx_stats_update(txo, skb); txo 1034 drivers/net/ethernet/emulex/benet/be_main.c be_xmit_restore(adapter, txo, head, map_single, copied); txo 1225 drivers/net/ethernet/emulex/benet/be_main.c static void be_xmit_flush(struct be_adapter *adapter, struct be_tx_obj *txo) txo 1227 drivers/net/ethernet/emulex/benet/be_main.c struct be_queue_info *txq = &txo->q; txo 1228 drivers/net/ethernet/emulex/benet/be_main.c struct be_eth_hdr_wrb *hdr = queue_index_node(txq, txo->last_req_hdr); txo 1235 drivers/net/ethernet/emulex/benet/be_main.c if (!lancer_chip(adapter) && (txo->pend_wrb_cnt & 1)) { txo 1239 drivers/net/ethernet/emulex/benet/be_main.c txo->pend_wrb_cnt++; txo 1242 drivers/net/ethernet/emulex/benet/be_main.c hdr->dw[2] |= cpu_to_le32((txo->last_req_wrb_cnt + 1) << txo 1245 drivers/net/ethernet/emulex/benet/be_main.c be_txq_notify(adapter, txo, txo->pend_wrb_cnt); txo 1246 drivers/net/ethernet/emulex/benet/be_main.c txo->pend_wrb_cnt = 0; txo 1373 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo = &adapter->tx_obj[q_idx]; txo 1384 drivers/net/ethernet/emulex/benet/be_main.c wrb_cnt = be_xmit_enqueue(adapter, txo, skb, &wrb_params); txo 1395 drivers/net/ethernet/emulex/benet/be_main.c wrb_cnt = be_xmit_enqueue(adapter, txo, skb, &wrb_params); txo 1402 drivers/net/ethernet/emulex/benet/be_main.c if (be_is_txq_full(txo)) { txo 1404 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_stops++; txo 1408 drivers/net/ethernet/emulex/benet/be_main.c be_xmit_flush(adapter, txo); txo 1412 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_drv_drops++; txo 1414 drivers/net/ethernet/emulex/benet/be_main.c if (flush && txo->pend_wrb_cnt) txo 1415 drivers/net/ethernet/emulex/benet/be_main.c be_xmit_flush(adapter, txo); txo 1424 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 1432 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues(adapter, txo, i) { txo 1434 drivers/net/ethernet/emulex/benet/be_main.c i, txo->q.head, txo->q.tail, txo 1435 drivers/net/ethernet/emulex/benet/be_main.c atomic_read(&txo->q.used), txo->q.id); txo 1437 drivers/net/ethernet/emulex/benet/be_main.c entry = txo->q.dma_mem.va; txo 1447 drivers/net/ethernet/emulex/benet/be_main.c entry = txo->cq.dma_mem.va; txo 1449 drivers/net/ethernet/emulex/benet/be_main.c i, txo->cq.head, txo->cq.tail, txo 1450 drivers/net/ethernet/emulex/benet/be_main.c atomic_read(&txo->cq.used)); txo 1461 drivers/net/ethernet/emulex/benet/be_main.c if (txo->sent_skb_list[j]) { txo 1462 drivers/net/ethernet/emulex/benet/be_main.c skb = txo->sent_skb_list[j]; txo 2143 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 2164 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues_on_eq(adapter, eqo, txo, i) { txo 2166 drivers/net/ethernet/emulex/benet/be_main.c start = u64_stats_fetch_begin_irq(&txo->stats.sync); txo 2167 drivers/net/ethernet/emulex/benet/be_main.c tx_pkts += txo->stats.tx_reqs; txo 2168 drivers/net/ethernet/emulex/benet/be_main.c } while (u64_stats_fetch_retry_irq(&txo->stats.sync, start)); txo 2668 drivers/net/ethernet/emulex/benet/be_main.c static inline void be_update_tx_err(struct be_tx_obj *txo, u8 status) txo 2672 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_hdr_parse_err++; txo 2675 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_dma_err++; txo 2678 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_spoof_check_err++; txo 2683 drivers/net/ethernet/emulex/benet/be_main.c static inline void lancer_update_tx_err(struct be_tx_obj *txo, u8 status) txo 2687 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_tso_err++; txo 2691 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_spoof_check_err++; txo 2694 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_qinq_err++; txo 2697 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_internal_parity_err++; txo 2700 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_dma_err++; txo 2703 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_sge_err++; txo 2709 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo) txo 2711 drivers/net/ethernet/emulex/benet/be_main.c struct be_queue_info *tx_cq = &txo->cq; txo 2712 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_compl_info *txcp = &txo->txcp; txo 2727 drivers/net/ethernet/emulex/benet/be_main.c lancer_update_tx_err(txo, txcp->status); txo 2736 drivers/net/ethernet/emulex/benet/be_main.c be_update_tx_err(txo, txcp->status); txo 2749 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo, u16 last_index) txo 2751 drivers/net/ethernet/emulex/benet/be_main.c struct sk_buff **sent_skbs = txo->sent_skb_list; txo 2752 drivers/net/ethernet/emulex/benet/be_main.c struct be_queue_info *txq = &txo->q; txo 2874 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 2881 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues(adapter, txo, i) { txo 2884 drivers/net/ethernet/emulex/benet/be_main.c txq = &txo->q; txo 2885 drivers/net/ethernet/emulex/benet/be_main.c while ((txcp = be_tx_compl_get(adapter, txo))) { txo 2887 drivers/net/ethernet/emulex/benet/be_main.c be_tx_compl_process(adapter, txo, txo 2892 drivers/net/ethernet/emulex/benet/be_main.c be_cq_notify(adapter, txo->cq.id, false, cmpl); txo 2896 drivers/net/ethernet/emulex/benet/be_main.c if (!be_is_tx_compl_pending(txo)) txo 2908 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues(adapter, txo, i) { txo 2909 drivers/net/ethernet/emulex/benet/be_main.c txq = &txo->q; txo 2921 drivers/net/ethernet/emulex/benet/be_main.c num_wrbs = be_tx_compl_process(adapter, txo, end_idx); txo 2924 drivers/net/ethernet/emulex/benet/be_main.c txo->pend_wrb_cnt = 0; txo 3043 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 3046 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues(adapter, txo, i) { txo 3047 drivers/net/ethernet/emulex/benet/be_main.c q = &txo->q; txo 3052 drivers/net/ethernet/emulex/benet/be_main.c q = &txo->cq; txo 3062 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 3068 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues(adapter, txo, i) { txo 3069 drivers/net/ethernet/emulex/benet/be_main.c cq = &txo->cq; txo 3075 drivers/net/ethernet/emulex/benet/be_main.c u64_stats_init(&txo->stats.sync); txo 3076 drivers/net/ethernet/emulex/benet/be_main.c u64_stats_init(&txo->stats.sync_compl); txo 3086 drivers/net/ethernet/emulex/benet/be_main.c status = be_queue_alloc(adapter, &txo->q, TX_Q_LEN, txo 3091 drivers/net/ethernet/emulex/benet/be_main.c status = be_cmd_txq_create(adapter, txo); txo 3266 drivers/net/ethernet/emulex/benet/be_main.c static void be_process_tx(struct be_adapter *adapter, struct be_tx_obj *txo, txo 3272 drivers/net/ethernet/emulex/benet/be_main.c while ((txcp = be_tx_compl_get(adapter, txo))) { txo 3273 drivers/net/ethernet/emulex/benet/be_main.c num_wrbs += be_tx_compl_process(adapter, txo, txcp->end_index); txo 3278 drivers/net/ethernet/emulex/benet/be_main.c be_cq_notify(adapter, txo->cq.id, true, work_done); txo 3279 drivers/net/ethernet/emulex/benet/be_main.c atomic_sub(num_wrbs, &txo->q.used); txo 3284 drivers/net/ethernet/emulex/benet/be_main.c be_can_txq_wake(txo)) { txo 3288 drivers/net/ethernet/emulex/benet/be_main.c u64_stats_update_begin(&tx_stats(txo)->sync_compl); txo 3289 drivers/net/ethernet/emulex/benet/be_main.c tx_stats(txo)->tx_compl += work_done; txo 3290 drivers/net/ethernet/emulex/benet/be_main.c u64_stats_update_end(&tx_stats(txo)->sync_compl); txo 3300 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 3305 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues_on_eq(adapter, eqo, txo, i) txo 3306 drivers/net/ethernet/emulex/benet/be_main.c be_process_tx(adapter, txo, i); txo 3798 drivers/net/ethernet/emulex/benet/be_main.c struct be_tx_obj *txo; txo 3817 drivers/net/ethernet/emulex/benet/be_main.c for_all_tx_queues(adapter, txo, i) txo 3818 drivers/net/ethernet/emulex/benet/be_main.c be_cq_notify(adapter, txo->cq.id, true, 0); txo 229 drivers/net/ethernet/ibm/ehea/ehea_phyp.h u64 txo; txo 318 drivers/net/ethernet/ibm/ehea/ehea_phyp.h u64 txo; /* 29 */