Lines Matching refs:tx_queue

61 efx_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index)  in efx_tx_desc()  argument
63 return ((efx_qword_t *) (tx_queue->txd.buf.addr)) + index; in efx_tx_desc()
67 static struct efx_tx_queue *efx_tx_queue_partner(struct efx_tx_queue *tx_queue) in efx_tx_queue_partner() argument
69 if (tx_queue->queue & EFX_TXQ_TYPE_OFFLOAD) in efx_tx_queue_partner()
70 return tx_queue - EFX_TXQ_TYPE_OFFLOAD; in efx_tx_queue_partner()
72 return tx_queue + EFX_TXQ_TYPE_OFFLOAD; in efx_tx_queue_partner()
78 static inline bool __efx_nic_tx_is_empty(struct efx_tx_queue *tx_queue, in __efx_nic_tx_is_empty() argument
81 unsigned int empty_read_count = READ_ONCE(tx_queue->empty_read_count); in __efx_nic_tx_is_empty()
94 static inline bool efx_nic_tx_is_empty(struct efx_tx_queue *tx_queue) in efx_nic_tx_is_empty() argument
96 EFX_WARN_ON_ONCE_PARANOID(!tx_queue->efx->type->option_descriptors); in efx_nic_tx_is_empty()
97 return __efx_nic_tx_is_empty(tx_queue, tx_queue->packet_write_count); in efx_nic_tx_is_empty()
106 static inline bool efx_nic_may_tx_pio(struct efx_tx_queue *tx_queue) in efx_nic_may_tx_pio() argument
108 struct efx_tx_queue *partner = efx_tx_queue_partner(tx_queue); in efx_nic_may_tx_pio()
110 return tx_queue->piobuf && efx_nic_tx_is_empty(tx_queue) && in efx_nic_may_tx_pio()
122 static inline bool efx_nic_may_push_tx_desc(struct efx_tx_queue *tx_queue, in efx_nic_may_push_tx_desc() argument
125 bool was_empty = __efx_nic_tx_is_empty(tx_queue, write_count); in efx_nic_may_push_tx_desc()
127 tx_queue->empty_read_count = 0; in efx_nic_may_push_tx_desc()
128 return was_empty && tx_queue->write_count - write_count == 1; in efx_nic_may_push_tx_desc()
474 ktime_t efx_ptp_nic_to_kernel_time(struct efx_tx_queue *tx_queue);
492 static inline int efx_nic_probe_tx(struct efx_tx_queue *tx_queue) in efx_nic_probe_tx() argument
494 return tx_queue->efx->type->tx_probe(tx_queue); in efx_nic_probe_tx()
496 static inline void efx_nic_init_tx(struct efx_tx_queue *tx_queue) in efx_nic_init_tx() argument
498 tx_queue->efx->type->tx_init(tx_queue); in efx_nic_init_tx()
500 static inline void efx_nic_remove_tx(struct efx_tx_queue *tx_queue) in efx_nic_remove_tx() argument
502 tx_queue->efx->type->tx_remove(tx_queue); in efx_nic_remove_tx()
504 static inline void efx_nic_push_buffers(struct efx_tx_queue *tx_queue) in efx_nic_push_buffers() argument
506 tx_queue->efx->type->tx_write(tx_queue); in efx_nic_push_buffers()
560 int efx_farch_tx_probe(struct efx_tx_queue *tx_queue);
561 void efx_farch_tx_init(struct efx_tx_queue *tx_queue);
562 void efx_farch_tx_fini(struct efx_tx_queue *tx_queue);
563 void efx_farch_tx_remove(struct efx_tx_queue *tx_queue);
564 void efx_farch_tx_write(struct efx_tx_queue *tx_queue);
565 unsigned int efx_farch_tx_limit_len(struct efx_tx_queue *tx_queue,