Lines Matching refs:txq_pcpu
973 static void mvpp2_txq_inc_get(struct mvpp2_txq_pcpu *txq_pcpu) in mvpp2_txq_inc_get() argument
975 txq_pcpu->txq_get_index++; in mvpp2_txq_inc_get()
976 if (txq_pcpu->txq_get_index == txq_pcpu->size) in mvpp2_txq_inc_get()
977 txq_pcpu->txq_get_index = 0; in mvpp2_txq_inc_get()
980 static void mvpp2_txq_inc_put(struct mvpp2_txq_pcpu *txq_pcpu, in mvpp2_txq_inc_put() argument
984 txq_pcpu->tx_skb[txq_pcpu->txq_put_index] = skb; in mvpp2_txq_inc_put()
986 txq_pcpu->tx_buffs[txq_pcpu->txq_put_index] = in mvpp2_txq_inc_put()
988 txq_pcpu->txq_put_index++; in mvpp2_txq_inc_put()
989 if (txq_pcpu->txq_put_index == txq_pcpu->size) in mvpp2_txq_inc_put()
990 txq_pcpu->txq_put_index = 0; in mvpp2_txq_inc_put()
4213 struct mvpp2_txq_pcpu *txq_pcpu, in mvpp2_txq_reserved_desc_num_proc() argument
4218 if (txq_pcpu->reserved_num >= num) in mvpp2_txq_reserved_desc_num_proc()
4235 req = max(MVPP2_CPU_DESC_CHUNK, num - txq_pcpu->reserved_num); in mvpp2_txq_reserved_desc_num_proc()
4242 txq_pcpu->reserved_num += mvpp2_txq_alloc_reserved_desc(priv, txq, req); in mvpp2_txq_reserved_desc_num_proc()
4245 if (txq_pcpu->reserved_num < num) in mvpp2_txq_reserved_desc_num_proc()
4401 struct mvpp2_txq_pcpu *txq_pcpu, int num) in mvpp2_txq_bufs_free() argument
4407 txq_pcpu->tx_buffs[txq_pcpu->txq_get_index]; in mvpp2_txq_bufs_free()
4408 struct sk_buff *skb = txq_pcpu->tx_skb[txq_pcpu->txq_get_index]; in mvpp2_txq_bufs_free()
4410 mvpp2_txq_inc_get(txq_pcpu); in mvpp2_txq_bufs_free()
4438 struct mvpp2_txq_pcpu *txq_pcpu) in mvpp2_txq_done() argument
4443 if (txq_pcpu->cpu != smp_processor_id()) in mvpp2_txq_done()
4449 mvpp2_txq_bufs_free(port, txq, txq_pcpu, tx_done); in mvpp2_txq_done()
4451 txq_pcpu->count -= tx_done; in mvpp2_txq_done()
4454 if (txq_pcpu->size - txq_pcpu->count >= MAX_SKB_FRAGS + 1) in mvpp2_txq_done()
4461 struct mvpp2_txq_pcpu *txq_pcpu; in mvpp2_tx_done() local
4469 txq_pcpu = this_cpu_ptr(txq->pcpu); in mvpp2_tx_done()
4471 if (txq_pcpu->count) { in mvpp2_tx_done()
4472 mvpp2_txq_done(port, txq, txq_pcpu); in mvpp2_tx_done()
4473 tx_todo += txq_pcpu->count; in mvpp2_tx_done()
4608 struct mvpp2_txq_pcpu *txq_pcpu; in mvpp2_txq_init() local
4665 txq_pcpu = per_cpu_ptr(txq->pcpu, cpu); in mvpp2_txq_init()
4666 txq_pcpu->size = txq->size; in mvpp2_txq_init()
4667 txq_pcpu->tx_skb = kmalloc(txq_pcpu->size * in mvpp2_txq_init()
4668 sizeof(*txq_pcpu->tx_skb), in mvpp2_txq_init()
4670 if (!txq_pcpu->tx_skb) in mvpp2_txq_init()
4673 txq_pcpu->tx_buffs = kmalloc(txq_pcpu->size * in mvpp2_txq_init()
4675 if (!txq_pcpu->tx_buffs) in mvpp2_txq_init()
4678 txq_pcpu->count = 0; in mvpp2_txq_init()
4679 txq_pcpu->reserved_num = 0; in mvpp2_txq_init()
4680 txq_pcpu->txq_put_index = 0; in mvpp2_txq_init()
4681 txq_pcpu->txq_get_index = 0; in mvpp2_txq_init()
4688 txq_pcpu = per_cpu_ptr(txq->pcpu, cpu); in mvpp2_txq_init()
4689 kfree(txq_pcpu->tx_skb); in mvpp2_txq_init()
4690 kfree(txq_pcpu->tx_buffs); in mvpp2_txq_init()
4704 struct mvpp2_txq_pcpu *txq_pcpu; in mvpp2_txq_deinit() local
4708 txq_pcpu = per_cpu_ptr(txq->pcpu, cpu); in mvpp2_txq_deinit()
4709 kfree(txq_pcpu->tx_skb); in mvpp2_txq_deinit()
4710 kfree(txq_pcpu->tx_buffs); in mvpp2_txq_deinit()
4735 struct mvpp2_txq_pcpu *txq_pcpu; in mvpp2_txq_clean() local
4765 txq_pcpu = per_cpu_ptr(txq->pcpu, cpu); in mvpp2_txq_clean()
4768 mvpp2_txq_bufs_free(port, txq, txq_pcpu, txq_pcpu->count); in mvpp2_txq_clean()
4771 txq_pcpu->count = 0; in mvpp2_txq_clean()
4772 txq_pcpu->txq_put_index = 0; in mvpp2_txq_clean()
4773 txq_pcpu->txq_get_index = 0; in mvpp2_txq_clean()
5202 struct mvpp2_txq_pcpu *txq_pcpu = this_cpu_ptr(txq->pcpu); in mvpp2_tx_frag_process() local
5229 mvpp2_txq_inc_put(txq_pcpu, skb, tx_desc); in mvpp2_tx_frag_process()
5233 mvpp2_txq_inc_put(txq_pcpu, NULL, tx_desc); in mvpp2_tx_frag_process()
5256 struct mvpp2_txq_pcpu *txq_pcpu; in mvpp2_tx() local
5265 txq_pcpu = this_cpu_ptr(txq->pcpu); in mvpp2_tx()
5273 txq_pcpu, frags)) { in mvpp2_tx()
5299 mvpp2_txq_inc_put(txq_pcpu, skb, tx_desc); in mvpp2_tx()
5304 mvpp2_txq_inc_put(txq_pcpu, NULL, tx_desc); in mvpp2_tx()
5314 txq_pcpu->reserved_num -= frags; in mvpp2_tx()
5315 txq_pcpu->count += frags; in mvpp2_tx()
5322 if (txq_pcpu->size - txq_pcpu->count < MAX_SKB_FRAGS + 1) { in mvpp2_tx()
5341 if (txq_pcpu->count >= txq->done_pkts_coal) in mvpp2_tx()
5342 mvpp2_txq_done(port, txq, txq_pcpu); in mvpp2_tx()
5345 if (txq_pcpu->count <= frags && txq_pcpu->count > 0) { in mvpp2_tx()
6006 struct mvpp2_txq_pcpu *txq_pcpu; in mvpp2_port_init() local
6042 txq_pcpu = per_cpu_ptr(txq->pcpu, cpu); in mvpp2_port_init()
6043 txq_pcpu->cpu = cpu; in mvpp2_port_init()