• Home
  • Raw
  • Download

Lines Matching refs:tx_queue

64 efx_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index)  in efx_tx_desc()  argument
66 return ((efx_qword_t *) (tx_queue->txd.buf.addr)) + index; in efx_tx_desc()
70 static struct efx_tx_queue *efx_tx_queue_partner(struct efx_tx_queue *tx_queue) in efx_tx_queue_partner() argument
72 if (tx_queue->queue & EFX_TXQ_TYPE_OFFLOAD) in efx_tx_queue_partner()
73 return tx_queue - EFX_TXQ_TYPE_OFFLOAD; in efx_tx_queue_partner()
75 return tx_queue + EFX_TXQ_TYPE_OFFLOAD; in efx_tx_queue_partner()
81 static inline bool __efx_nic_tx_is_empty(struct efx_tx_queue *tx_queue, in __efx_nic_tx_is_empty() argument
84 unsigned int empty_read_count = ACCESS_ONCE(tx_queue->empty_read_count); in __efx_nic_tx_is_empty()
97 static inline bool efx_nic_tx_is_empty(struct efx_tx_queue *tx_queue) in efx_nic_tx_is_empty() argument
99 EFX_WARN_ON_ONCE_PARANOID(!tx_queue->efx->type->option_descriptors); in efx_nic_tx_is_empty()
100 return __efx_nic_tx_is_empty(tx_queue, tx_queue->packet_write_count); in efx_nic_tx_is_empty()
109 static inline bool efx_nic_may_tx_pio(struct efx_tx_queue *tx_queue) in efx_nic_may_tx_pio() argument
111 struct efx_tx_queue *partner = efx_tx_queue_partner(tx_queue); in efx_nic_may_tx_pio()
113 return tx_queue->piobuf && efx_nic_tx_is_empty(tx_queue) && in efx_nic_may_tx_pio()
125 static inline bool efx_nic_may_push_tx_desc(struct efx_tx_queue *tx_queue, in efx_nic_may_push_tx_desc() argument
128 bool was_empty = __efx_nic_tx_is_empty(tx_queue, write_count); in efx_nic_may_push_tx_desc()
130 tx_queue->empty_read_count = 0; in efx_nic_may_push_tx_desc()
131 return was_empty && tx_queue->write_count - write_count == 1; in efx_nic_may_push_tx_desc()
467 static inline int efx_nic_probe_tx(struct efx_tx_queue *tx_queue) in efx_nic_probe_tx() argument
469 return tx_queue->efx->type->tx_probe(tx_queue); in efx_nic_probe_tx()
471 static inline void efx_nic_init_tx(struct efx_tx_queue *tx_queue) in efx_nic_init_tx() argument
473 tx_queue->efx->type->tx_init(tx_queue); in efx_nic_init_tx()
475 static inline void efx_nic_remove_tx(struct efx_tx_queue *tx_queue) in efx_nic_remove_tx() argument
477 tx_queue->efx->type->tx_remove(tx_queue); in efx_nic_remove_tx()
479 static inline void efx_nic_push_buffers(struct efx_tx_queue *tx_queue) in efx_nic_push_buffers() argument
481 tx_queue->efx->type->tx_write(tx_queue); in efx_nic_push_buffers()
535 int efx_farch_tx_probe(struct efx_tx_queue *tx_queue);
536 void efx_farch_tx_init(struct efx_tx_queue *tx_queue);
537 void efx_farch_tx_fini(struct efx_tx_queue *tx_queue);
538 void efx_farch_tx_remove(struct efx_tx_queue *tx_queue);
539 void efx_farch_tx_write(struct efx_tx_queue *tx_queue);
540 unsigned int efx_farch_tx_limit_len(struct efx_tx_queue *tx_queue,