Lines Matching refs:tx_ring
271 u16 vlan_id, struct qlcnic_host_tx_ring *tx_ring) in qlcnic_82xx_change_filter() argument
280 producer = tx_ring->producer; in qlcnic_82xx_change_filter()
281 hwdesc = &tx_ring->desc_head[tx_ring->producer]; in qlcnic_82xx_change_filter()
297 tx_ring->producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_82xx_change_filter()
304 struct qlcnic_host_tx_ring *tx_ring) in qlcnic_send_filter() argument
338 vlan_id, tx_ring); in qlcnic_send_filter()
353 qlcnic_change_filter(adapter, &src_addr, vlan_id, tx_ring); in qlcnic_send_filter()
373 struct qlcnic_host_tx_ring *tx_ring) in qlcnic_tx_encap_pkt() argument
377 u32 producer = tx_ring->producer; in qlcnic_tx_encap_pkt()
407 hwdesc = &tx_ring->desc_head[producer]; in qlcnic_tx_encap_pkt()
408 tx_ring->cmd_buf_arr[producer].skb = NULL; in qlcnic_tx_encap_pkt()
413 producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_tx_encap_pkt()
416 tx_ring->producer = producer; in qlcnic_tx_encap_pkt()
459 struct qlcnic_host_tx_ring *tx_ring) in qlcnic_tx_pkt() argument
467 u32 producer = tx_ring->producer; in qlcnic_tx_pkt()
519 hwdesc = &tx_ring->desc_head[producer]; in qlcnic_tx_pkt()
520 tx_ring->cmd_buf_arr[producer].skb = NULL; in qlcnic_tx_pkt()
535 producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_tx_pkt()
541 hwdesc = &tx_ring->desc_head[producer]; in qlcnic_tx_pkt()
542 tx_ring->cmd_buf_arr[producer].skb = NULL; in qlcnic_tx_pkt()
548 producer = get_next_index(producer, tx_ring->num_desc); in qlcnic_tx_pkt()
551 tx_ring->producer = producer; in qlcnic_tx_pkt()
651 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_xmit_frame() local
673 tx_ring = &adapter->tx_ring[skb_get_queue_mapping(skb)]; in qlcnic_xmit_frame()
674 num_txd = tx_ring->num_desc; in qlcnic_xmit_frame()
691 if (unlikely(qlcnic_tx_avail(tx_ring) <= TX_STOP_THRESH)) { in qlcnic_xmit_frame()
692 netif_tx_stop_queue(tx_ring->txq); in qlcnic_xmit_frame()
693 if (qlcnic_tx_avail(tx_ring) > TX_STOP_THRESH) { in qlcnic_xmit_frame()
694 netif_tx_start_queue(tx_ring->txq); in qlcnic_xmit_frame()
696 tx_ring->tx_stats.xmit_off++; in qlcnic_xmit_frame()
701 producer = tx_ring->producer; in qlcnic_xmit_frame()
702 pbuf = &tx_ring->cmd_buf_arr[producer]; in qlcnic_xmit_frame()
704 first_desc = &tx_ring->desc_head[producer]; in qlcnic_xmit_frame()
705 hwdesc = &tx_ring->desc_head[producer]; in qlcnic_xmit_frame()
725 hwdesc = &tx_ring->desc_head[producer]; in qlcnic_xmit_frame()
727 tx_ring->cmd_buf_arr[producer].skb = NULL; in qlcnic_xmit_frame()
748 tx_ring->producer = get_next_index(producer, num_txd); in qlcnic_xmit_frame()
761 tx_ring))) in qlcnic_xmit_frame()
765 skb, tx_ring))) in qlcnic_xmit_frame()
770 qlcnic_send_filter(adapter, first_desc, skb, tx_ring); in qlcnic_xmit_frame()
772 tx_ring->tx_stats.tx_bytes += skb->len; in qlcnic_xmit_frame()
773 tx_ring->tx_stats.xmit_called++; in qlcnic_xmit_frame()
777 qlcnic_update_cmd_producer(tx_ring); in qlcnic_xmit_frame()
886 struct qlcnic_host_tx_ring *tx_ring, in qlcnic_process_cmd_ring() argument
896 if (!spin_trylock(&tx_ring->tx_clean_lock)) in qlcnic_process_cmd_ring()
899 sw_consumer = tx_ring->sw_consumer; in qlcnic_process_cmd_ring()
900 hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer)); in qlcnic_process_cmd_ring()
903 buffer = &tx_ring->cmd_buf_arr[sw_consumer]; in qlcnic_process_cmd_ring()
915 tx_ring->tx_stats.xmit_finished++; in qlcnic_process_cmd_ring()
920 sw_consumer = get_next_index(sw_consumer, tx_ring->num_desc); in qlcnic_process_cmd_ring()
925 tx_ring->sw_consumer = sw_consumer; in qlcnic_process_cmd_ring()
929 if (netif_tx_queue_stopped(tx_ring->txq) && in qlcnic_process_cmd_ring()
931 if (qlcnic_tx_avail(tx_ring) > TX_STOP_THRESH) { in qlcnic_process_cmd_ring()
932 netif_tx_wake_queue(tx_ring->txq); in qlcnic_process_cmd_ring()
933 tx_ring->tx_stats.xmit_on++; in qlcnic_process_cmd_ring()
951 hw_consumer = le32_to_cpu(*(tx_ring->hw_consumer)); in qlcnic_process_cmd_ring()
954 spin_unlock(&tx_ring->tx_clean_lock); in qlcnic_process_cmd_ring()
964 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_poll() local
968 tx_ring = sds_ring->tx_ring; in qlcnic_poll()
970 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, in qlcnic_poll()
982 qlcnic_enable_tx_intr(adapter, tx_ring); in qlcnic_poll()
991 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_tx_poll() local
995 tx_ring = container_of(napi, struct qlcnic_host_tx_ring, napi); in qlcnic_tx_poll()
996 adapter = tx_ring->adapter; in qlcnic_tx_poll()
998 work_done = qlcnic_process_cmd_ring(adapter, tx_ring, budget); in qlcnic_tx_poll()
1000 napi_complete(&tx_ring->napi); in qlcnic_tx_poll()
1002 qlcnic_enable_tx_intr(adapter, tx_ring); in qlcnic_tx_poll()
1579 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_82xx_napi_add() local
1607 tx_ring = &adapter->tx_ring[ring]; in qlcnic_82xx_napi_add()
1608 netif_napi_add_tx(netdev, &tx_ring->napi, in qlcnic_82xx_napi_add()
1621 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_82xx_napi_del() local
1632 tx_ring = &adapter->tx_ring[ring]; in qlcnic_82xx_napi_del()
1633 netif_napi_del(&tx_ring->napi); in qlcnic_82xx_napi_del()
1644 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_82xx_napi_enable() local
1660 tx_ring = &adapter->tx_ring[ring]; in qlcnic_82xx_napi_enable()
1661 napi_enable(&tx_ring->napi); in qlcnic_82xx_napi_enable()
1662 qlcnic_enable_tx_intr(adapter, tx_ring); in qlcnic_82xx_napi_enable()
1671 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_82xx_napi_disable() local
1688 tx_ring = &adapter->tx_ring[ring]; in qlcnic_82xx_napi_disable()
1689 qlcnic_disable_tx_intr(adapter, tx_ring); in qlcnic_82xx_napi_disable()
1690 napi_synchronize(&tx_ring->napi); in qlcnic_82xx_napi_disable()
1691 napi_disable(&tx_ring->napi); in qlcnic_82xx_napi_disable()
1954 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_83xx_msix_sriov_vf_poll() local
1959 tx_ring = adapter->tx_ring; in qlcnic_83xx_msix_sriov_vf_poll()
1961 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget); in qlcnic_83xx_msix_sriov_vf_poll()
1982 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_83xx_poll() local
1987 tx_ring = adapter->tx_ring; in qlcnic_83xx_poll()
1989 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget); in qlcnic_83xx_poll()
2007 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_83xx_msix_tx_poll() local
2010 tx_ring = container_of(napi, struct qlcnic_host_tx_ring, napi); in qlcnic_83xx_msix_tx_poll()
2011 adapter = tx_ring->adapter; in qlcnic_83xx_msix_tx_poll()
2012 work_done = qlcnic_process_cmd_ring(adapter, tx_ring, budget); in qlcnic_83xx_msix_tx_poll()
2014 napi_complete(&tx_ring->napi); in qlcnic_83xx_msix_tx_poll()
2016 qlcnic_enable_tx_intr(adapter, tx_ring); in qlcnic_83xx_msix_tx_poll()
2047 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_83xx_napi_enable() local
2063 tx_ring = &adapter->tx_ring[ring]; in qlcnic_83xx_napi_enable()
2064 napi_enable(&tx_ring->napi); in qlcnic_83xx_napi_enable()
2065 qlcnic_enable_tx_intr(adapter, tx_ring); in qlcnic_83xx_napi_enable()
2075 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_83xx_napi_disable() local
2091 tx_ring = &adapter->tx_ring[ring]; in qlcnic_83xx_napi_disable()
2092 qlcnic_disable_tx_intr(adapter, tx_ring); in qlcnic_83xx_napi_disable()
2093 napi_synchronize(&tx_ring->napi); in qlcnic_83xx_napi_disable()
2094 napi_disable(&tx_ring->napi); in qlcnic_83xx_napi_disable()
2104 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_83xx_napi_add() local
2134 tx_ring = &adapter->tx_ring[ring]; in qlcnic_83xx_napi_add()
2135 netif_napi_add_tx(netdev, &tx_ring->napi, in qlcnic_83xx_napi_add()
2148 struct qlcnic_host_tx_ring *tx_ring; in qlcnic_83xx_napi_del() local
2160 tx_ring = &adapter->tx_ring[ring]; in qlcnic_83xx_napi_del()
2161 netif_napi_del(&tx_ring->napi); in qlcnic_83xx_napi_del()