Lines Matching refs:ring

209 static void ena_rx_queue_release_bufs(struct ena_ring *ring);
210 static void ena_tx_queue_release_bufs(struct ena_ring *ring);
213 static int ena_create_io_queue(struct ena_ring *ring);
214 static void ena_queue_stop(struct ena_ring *ring);
217 static int ena_queue_start(struct ena_ring *ring);
719 struct ena_ring *ring = (struct ena_ring *)queue; in ena_rx_queue_release() local
722 if (ring->rx_buffer_info) in ena_rx_queue_release()
723 rte_free(ring->rx_buffer_info); in ena_rx_queue_release()
724 ring->rx_buffer_info = NULL; in ena_rx_queue_release()
726 if (ring->rx_refill_buffer) in ena_rx_queue_release()
727 rte_free(ring->rx_refill_buffer); in ena_rx_queue_release()
728 ring->rx_refill_buffer = NULL; in ena_rx_queue_release()
730 if (ring->empty_rx_reqs) in ena_rx_queue_release()
731 rte_free(ring->empty_rx_reqs); in ena_rx_queue_release()
732 ring->empty_rx_reqs = NULL; in ena_rx_queue_release()
734 ring->configured = 0; in ena_rx_queue_release()
737 ring->port_id, ring->id); in ena_rx_queue_release()
742 struct ena_ring *ring = (struct ena_ring *)queue; in ena_tx_queue_release() local
745 if (ring->push_buf_intermediate_buf) in ena_tx_queue_release()
746 rte_free(ring->push_buf_intermediate_buf); in ena_tx_queue_release()
748 if (ring->tx_buffer_info) in ena_tx_queue_release()
749 rte_free(ring->tx_buffer_info); in ena_tx_queue_release()
751 if (ring->empty_tx_reqs) in ena_tx_queue_release()
752 rte_free(ring->empty_tx_reqs); in ena_tx_queue_release()
754 ring->empty_tx_reqs = NULL; in ena_tx_queue_release()
755 ring->tx_buffer_info = NULL; in ena_tx_queue_release()
756 ring->push_buf_intermediate_buf = NULL; in ena_tx_queue_release()
758 ring->configured = 0; in ena_tx_queue_release()
761 ring->port_id, ring->id); in ena_tx_queue_release()
764 static void ena_rx_queue_release_bufs(struct ena_ring *ring) in ena_rx_queue_release_bufs() argument
768 for (i = 0; i < ring->ring_size; ++i) { in ena_rx_queue_release_bufs()
769 struct ena_rx_buffer *rx_info = &ring->rx_buffer_info[i]; in ena_rx_queue_release_bufs()
777 static void ena_tx_queue_release_bufs(struct ena_ring *ring) in ena_tx_queue_release_bufs() argument
781 for (i = 0; i < ring->ring_size; ++i) { in ena_tx_queue_release_bufs()
782 struct ena_tx_buffer *tx_buf = &ring->tx_buffer_info[i]; in ena_tx_queue_release_bufs()
1129 static int ena_create_io_queue(struct ena_ring *ring) in ena_create_io_queue() argument
1141 adapter = ring->adapter; in ena_create_io_queue()
1144 if (ring->type == ENA_RING_TYPE_TX) { in ena_create_io_queue()
1145 ena_qid = ENA_IO_TXQ_IDX(ring->id); in ena_create_io_queue()
1148 for (i = 0; i < ring->ring_size; i++) in ena_create_io_queue()
1149 ring->empty_tx_reqs[i] = i; in ena_create_io_queue()
1151 ena_qid = ENA_IO_RXQ_IDX(ring->id); in ena_create_io_queue()
1153 for (i = 0; i < ring->ring_size; i++) in ena_create_io_queue()
1154 ring->empty_rx_reqs[i] = i; in ena_create_io_queue()
1156 ctx.queue_size = ring->ring_size; in ena_create_io_queue()
1159 ctx.numa_node = ring->numa_socket_id; in ena_create_io_queue()
1165 ring->id, ena_qid, rc); in ena_create_io_queue()
1170 &ring->ena_com_io_sq, in ena_create_io_queue()
1171 &ring->ena_com_io_cq); in ena_create_io_queue()
1175 ring->id, rc); in ena_create_io_queue()
1180 if (ring->type == ENA_RING_TYPE_TX) in ena_create_io_queue()
1181 ena_com_update_numa_node(ring->ena_com_io_cq, ctx.numa_node); in ena_create_io_queue()
1186 static void ena_queue_stop(struct ena_ring *ring) in ena_queue_stop() argument
1188 struct ena_com_dev *ena_dev = &ring->adapter->ena_dev; in ena_queue_stop()
1190 if (ring->type == ENA_RING_TYPE_RX) { in ena_queue_stop()
1191 ena_com_destroy_io_queue(ena_dev, ENA_IO_RXQ_IDX(ring->id)); in ena_queue_stop()
1192 ena_rx_queue_release_bufs(ring); in ena_queue_stop()
1194 ena_com_destroy_io_queue(ena_dev, ENA_IO_TXQ_IDX(ring->id)); in ena_queue_stop()
1195 ena_tx_queue_release_bufs(ring); in ena_queue_stop()
1219 static int ena_queue_start(struct ena_ring *ring) in ena_queue_start() argument
1223 ena_assert_msg(ring->configured == 1, in ena_queue_start()
1226 rc = ena_create_io_queue(ring); in ena_queue_start()
1232 ring->next_to_clean = 0; in ena_queue_start()
1233 ring->next_to_use = 0; in ena_queue_start()
1235 if (ring->type == ENA_RING_TYPE_TX) { in ena_queue_start()
1236 ring->tx_stats.available_desc = in ena_queue_start()
1237 ena_com_free_q_entries(ring->ena_com_io_sq); in ena_queue_start()
1241 bufs_num = ring->ring_size - 1; in ena_queue_start()
1242 rc = ena_populate_rx_queue(ring, bufs_num); in ena_queue_start()
1244 ena_com_destroy_io_queue(&ring->adapter->ena_dev, in ena_queue_start()
1245 ENA_IO_RXQ_IDX(ring->id)); in ena_queue_start()
1986 struct ena_ring *ring = &adapter->tx_ring[i]; in ena_init_rings() local
1988 ring->configured = 0; in ena_init_rings()
1989 ring->type = ENA_RING_TYPE_TX; in ena_init_rings()
1990 ring->adapter = adapter; in ena_init_rings()
1991 ring->id = i; in ena_init_rings()
1992 ring->tx_mem_queue_type = adapter->ena_dev.tx_mem_queue_type; in ena_init_rings()
1993 ring->tx_max_header_size = adapter->ena_dev.tx_max_header_size; in ena_init_rings()
1994 ring->sgl_size = adapter->max_tx_sgl_size; in ena_init_rings()
1995 ring->disable_meta_caching = disable_meta_caching; in ena_init_rings()
1999 struct ena_ring *ring = &adapter->rx_ring[i]; in ena_init_rings() local
2001 ring->configured = 0; in ena_init_rings()
2002 ring->type = ENA_RING_TYPE_RX; in ena_init_rings()
2003 ring->adapter = adapter; in ena_init_rings()
2004 ring->id = i; in ena_init_rings()
2005 ring->sgl_size = adapter->max_rx_sgl_size; in ena_init_rings()