Lines Matching refs:adapter
44 struct ena_adapter *adapter; member
87 ena_netmap_attach(struct ena_adapter *adapter) in ena_netmap_attach() argument
91 ena_log_nm(adapter->pdev, INFO, "netmap attach\n"); in ena_netmap_attach()
95 na.ifp = adapter->ifp; in ena_netmap_attach()
96 na.num_tx_desc = adapter->requested_tx_ring_size; in ena_netmap_attach()
97 na.num_rx_desc = adapter->requested_rx_ring_size; in ena_netmap_attach()
98 na.num_tx_rings = adapter->num_io_queues; in ena_netmap_attach()
99 na.num_rx_rings = adapter->num_io_queues; in ena_netmap_attach()
100 na.rx_buf_maxsize = adapter->buf_ring_size; in ena_netmap_attach()
109 ena_netmap_alloc_rx_slot(struct ena_adapter *adapter, in ena_netmap_alloc_rx_slot() argument
112 struct netmap_adapter *na = NA(adapter->ifp); in ena_netmap_alloc_rx_slot()
129 ena_log_nm(adapter->pdev, DBG, "nr_hwcur: %d, nr_hwtail: %d, " in ena_netmap_alloc_rx_slot()
134 ena_log_nm(adapter->pdev, ERR, "No free slots in netmap ring\n"); in ena_netmap_alloc_rx_slot()
140 ena_log_nm(adapter->pdev, ERR, "Rx ring %d is NULL\n", qid); in ena_netmap_alloc_rx_slot()
147 ena_log_nm(adapter->pdev, ERR, "Bad buff in slot\n"); in ena_netmap_alloc_rx_slot()
151 rc = netmap_load_map(na, adapter->rx_buf_tag, rx_info->map, addr); in ena_netmap_alloc_rx_slot()
153 ena_log_nm(adapter->pdev, WARN, "DMA mapping error\n"); in ena_netmap_alloc_rx_slot()
156 bus_dmamap_sync(adapter->rx_buf_tag, rx_info->map, BUS_DMASYNC_PREREAD); in ena_netmap_alloc_rx_slot()
172 ena_netmap_free_rx_slot(struct ena_adapter *adapter, in ena_netmap_free_rx_slot() argument
180 na = NA(adapter->ifp); in ena_netmap_free_rx_slot()
182 ena_log_nm(adapter->pdev, ERR, "netmap adapter is NULL\n"); in ena_netmap_free_rx_slot()
187 ena_log_nm(adapter->pdev, ERR, "netmap rings are NULL\n"); in ena_netmap_free_rx_slot()
194 ena_log_nm(adapter->pdev, ERR, in ena_netmap_free_rx_slot()
205 bus_dmamap_sync(adapter->rx_buf_tag, rx_info->map, in ena_netmap_free_rx_slot()
207 netmap_unload_map(na, adapter->rx_buf_tag, rx_info->map); in ena_netmap_free_rx_slot()
213 ENA_WARN(slot->buf_idx != 0, adapter->ena_dev, "Overwrite slot buf\n"); in ena_netmap_free_rx_slot()
222 ena_ring_in_netmap(struct ena_adapter *adapter, int qid, enum txrx x) in ena_ring_in_netmap() argument
227 if (adapter->ifp->if_capenable & IFCAP_NETMAP) { in ena_ring_in_netmap()
228 na = NA(adapter->ifp); in ena_ring_in_netmap()
237 ena_tx_ring_in_netmap(struct ena_adapter *adapter, int qid) in ena_tx_ring_in_netmap() argument
239 return ena_ring_in_netmap(adapter, qid, NR_TX); in ena_tx_ring_in_netmap()
243 ena_rx_ring_in_netmap(struct ena_adapter *adapter, int qid) in ena_rx_ring_in_netmap() argument
245 return ena_ring_in_netmap(adapter, qid, NR_RX); in ena_rx_ring_in_netmap()
249 ena_netmap_reset_ring(struct ena_adapter *adapter, int qid, enum txrx x) in ena_netmap_reset_ring() argument
251 if (!ena_ring_in_netmap(adapter, qid, x)) in ena_netmap_reset_ring()
254 netmap_reset(NA(adapter->ifp), x, qid, 0); in ena_netmap_reset_ring()
255 ena_log_nm(adapter->pdev, INFO, "%s ring %d is in netmap mode\n", in ena_netmap_reset_ring()
260 ena_netmap_reset_rx_ring(struct ena_adapter *adapter, int qid) in ena_netmap_reset_rx_ring() argument
262 ena_netmap_reset_ring(adapter, qid, NR_RX); in ena_netmap_reset_rx_ring()
266 ena_netmap_reset_tx_ring(struct ena_adapter *adapter, int qid) in ena_netmap_reset_tx_ring() argument
268 ena_netmap_reset_ring(adapter, qid, NR_TX); in ena_netmap_reset_tx_ring()
275 struct ena_adapter* adapter = ifp->if_softc; in ena_netmap_reg() local
276 device_t pdev = adapter->pdev; in ena_netmap_reg()
282 ENA_FLAG_CLEAR_ATOMIC(ENA_FLAG_TRIGGER_RESET, adapter); in ena_netmap_reg()
283 ena_down(adapter); in ena_netmap_reg()
309 rc = ena_up(adapter); in ena_netmap_reg()
312 adapter->reset_reason = ENA_REGS_RESET_DRIVER_INVALID_STATE; in ena_netmap_reg()
314 ena_destroy_device(adapter, false); in ena_netmap_reg()
315 ENA_FLAG_SET_ATOMIC(ENA_FLAG_DEV_UP_BEFORE_RESET, adapter); in ena_netmap_reg()
316 rc = ena_restore_device(adapter); in ena_netmap_reg()
330 ctx.ring = &ctx.adapter->tx_ring[kring->ring_id]; in ena_netmap_txsync()
333 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_DEV_UP, ctx.adapter))) in ena_netmap_txsync()
336 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_LINK_UP, ctx.adapter))) in ena_netmap_txsync()
393 struct ena_adapter *adapter; in ena_netmap_tx_frame() local
403 adapter = ctx->adapter; in ena_netmap_tx_frame()
404 if (ena_netmap_count_slots(ctx) > adapter->max_tx_sgl_size) { in ena_netmap_tx_frame()
405 ena_log_nm(adapter->pdev, WARN, "Too many slots per packet\n"); in ena_netmap_tx_frame()
419 ena_log_nm(adapter->pdev, ERR, "Failed to map Tx slot\n"); in ena_netmap_tx_frame()
429 ena_tx_ctx.meta_valid = adapter->disable_meta_caching; in ena_netmap_tx_frame()
443 ena_log_nm(adapter->pdev, DBG, in ena_netmap_tx_frame()
446 ena_log_nm(adapter->pdev, ERR, in ena_netmap_tx_frame()
448 ena_trigger_reset(adapter, in ena_netmap_tx_frame()
460 counter_u64_add_protected(adapter->hw_stats.tx_packets, 1); in ena_netmap_tx_frame()
461 counter_u64_add_protected(adapter->hw_stats.tx_bytes, packet_len); in ena_netmap_tx_frame()
469 bus_dmamap_sync(adapter->tx_buf_tag, in ena_netmap_tx_frame()
563 struct ena_adapter *adapter; in ena_netmap_tx_map_slots() local
577 adapter = ctx->adapter; in ena_netmap_tx_map_slots()
609 ena_log_nm(adapter->pdev, ERR, in ena_netmap_tx_map_slots()
625 ena_log_nm(adapter->pdev, ERR, in ena_netmap_tx_map_slots()
636 ena_log_nm(adapter->pdev, DBG, in ena_netmap_tx_map_slots()
647 adapter->tx_buf_tag, in ena_netmap_tx_map_slots()
652 ena_log_nm(adapter->pdev, ERR, in ena_netmap_tx_map_slots()
700 adapter->tx_buf_tag, in ena_netmap_tx_map_slots()
705 ena_log_nm(adapter->pdev, ERR, in ena_netmap_tx_map_slots()
749 adapter->tx_buf_tag, in ena_netmap_tx_map_slots()
754 ena_log_nm(adapter->pdev, ERR, in ena_netmap_tx_map_slots()
803 netmap_unload_map(ctx->na, ctx->adapter->tx_buf_tag, in ena_netmap_unmap_last_socket_chain()
862 netmap_unload_map(ctx->na, ctx->adapter->tx_buf_tag, in ena_netmap_tx_clean_one()
871 ctx->adapter->ena_dev, "Tx idx is not 0.\n"); in ena_netmap_tx_clean_one()
887 struct ena_adapter *adapter = tx_ring->adapter; in validate_tx_req_id() local
892 ena_log_nm(adapter->pdev, WARN, "Invalid req_id: %hu\n", req_id); in validate_tx_req_id()
895 ena_trigger_reset(adapter, ENA_REGS_RESET_INV_TX_REQ_ID); in validate_tx_req_id()
907 ctx.ring = &ctx.adapter->rx_ring[kring->ring_id]; in ena_netmap_rxsync()
917 if (unlikely(!ENA_FLAG_ISSET(ENA_FLAG_LINK_UP, ctx.adapter))) in ena_netmap_rxsync()
942 ena_log_nm(ctx->adapter->pdev, ERR, in ena_netmap_rx_frames()
964 ena_rx_ctx.max_bufs = ctx->adapter->max_rx_sgl_size; in ena_netmap_rx_frame()
970 ena_log_nm(ctx->adapter->pdev, ERR, in ena_netmap_rx_frame()
979 ena_trigger_reset(ctx->adapter, reset_reason); in ena_netmap_rx_frame()
985 ena_log_nm(ctx->adapter->pdev, DBG, in ena_netmap_rx_frame()
1010 counter_u64_add_protected(ctx->adapter->hw_stats.rx_bytes, len); in ena_netmap_rx_frame()
1012 counter_u64_add_protected(ctx->adapter->hw_stats.rx_packets, 1); in ena_netmap_rx_frame()
1038 bus_dmamap_sync(ctx->adapter->rx_buf_tag, rx_info->map, in ena_netmap_rx_load_desc()
1040 netmap_unload_map(ctx->na, ctx->adapter->rx_buf_tag, rx_info->map); in ena_netmap_rx_load_desc()
1042 ENA_WARN(ctx->slots[ctx->nm_i].buf_idx != 0, ctx->adapter->ena_dev, in ena_netmap_rx_load_desc()
1055 ena_log_nm(ctx->adapter->pdev, DBG, "rx_info %p, buf_idx %d, paddr %jx, nm: %d\n", in ena_netmap_rx_load_desc()
1088 ctx->adapter = ctx->na->ifp->if_softc; in ena_netmap_fill_ctx()
1090 ctx->io_cq = &ctx->adapter->ena_dev->io_cq_queues[ena_qid]; in ena_netmap_fill_ctx()
1091 ctx->io_sq = &ctx->adapter->ena_dev->io_sq_queues[ena_qid]; in ena_netmap_fill_ctx()
1096 ena_netmap_unload(struct ena_adapter *adapter, bus_dmamap_t map) in ena_netmap_unload() argument
1098 struct netmap_adapter *na = NA(adapter->ifp); in ena_netmap_unload()
1100 netmap_unload_map(na, adapter->tx_buf_tag, map); in ena_netmap_unload()