Lines Matching refs:io_sq

353 			      struct ena_com_io_sq *io_sq)  in ena_com_init_io_sq()  argument
358 memset(&io_sq->desc_addr, 0x0, sizeof(io_sq->desc_addr)); in ena_com_init_io_sq()
360 io_sq->dma_addr_bits = (u8)ena_dev->dma_addr_bits; in ena_com_init_io_sq()
361 io_sq->desc_entry_size = in ena_com_init_io_sq()
362 (io_sq->direction == ENA_COM_IO_QUEUE_DIRECTION_TX) ? in ena_com_init_io_sq()
366 size = io_sq->desc_entry_size * io_sq->q_depth; in ena_com_init_io_sq()
367 io_sq->bus = ena_dev->bus; in ena_com_init_io_sq()
369 if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST) { in ena_com_init_io_sq()
372 io_sq->desc_addr.virt_addr, in ena_com_init_io_sq()
373 io_sq->desc_addr.phys_addr, in ena_com_init_io_sq()
374 io_sq->desc_addr.mem_handle, in ena_com_init_io_sq()
377 if (!io_sq->desc_addr.virt_addr) { in ena_com_init_io_sq()
380 io_sq->desc_addr.virt_addr, in ena_com_init_io_sq()
381 io_sq->desc_addr.phys_addr, in ena_com_init_io_sq()
382 io_sq->desc_addr.mem_handle); in ena_com_init_io_sq()
385 if (!io_sq->desc_addr.virt_addr) { in ena_com_init_io_sq()
391 if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) { in ena_com_init_io_sq()
393 io_sq->bounce_buf_ctrl.buffer_size = in ena_com_init_io_sq()
395 io_sq->bounce_buf_ctrl.buffers_num = in ena_com_init_io_sq()
397 io_sq->bounce_buf_ctrl.next_to_use = 0; in ena_com_init_io_sq()
399 size = io_sq->bounce_buf_ctrl.buffer_size * in ena_com_init_io_sq()
400 io_sq->bounce_buf_ctrl.buffers_num; in ena_com_init_io_sq()
404 io_sq->bounce_buf_ctrl.base_buffer, in ena_com_init_io_sq()
407 if (!io_sq->bounce_buf_ctrl.base_buffer) in ena_com_init_io_sq()
408 io_sq->bounce_buf_ctrl.base_buffer = ENA_MEM_ALLOC(ena_dev->dmadev, size); in ena_com_init_io_sq()
410 if (!io_sq->bounce_buf_ctrl.base_buffer) { in ena_com_init_io_sq()
415 memcpy(&io_sq->llq_info, &ena_dev->llq_info, in ena_com_init_io_sq()
416 sizeof(io_sq->llq_info)); in ena_com_init_io_sq()
419 io_sq->llq_buf_ctrl.curr_bounce_buf = in ena_com_init_io_sq()
420 ena_com_get_next_bounce_buffer(&io_sq->bounce_buf_ctrl); in ena_com_init_io_sq()
421 memset(io_sq->llq_buf_ctrl.curr_bounce_buf, in ena_com_init_io_sq()
422 0x0, io_sq->llq_info.desc_list_entry_size); in ena_com_init_io_sq()
423 io_sq->llq_buf_ctrl.descs_left_in_line = in ena_com_init_io_sq()
424 io_sq->llq_info.descs_num_before_header; in ena_com_init_io_sq()
425 io_sq->disable_meta_caching = in ena_com_init_io_sq()
426 io_sq->llq_info.disable_meta_caching; in ena_com_init_io_sq()
428 if (io_sq->llq_info.max_entries_in_tx_burst > 0) in ena_com_init_io_sq()
429 io_sq->entries_in_tx_burst_left = in ena_com_init_io_sq()
430 io_sq->llq_info.max_entries_in_tx_burst; in ena_com_init_io_sq()
433 io_sq->tail = 0; in ena_com_init_io_sq()
434 io_sq->next_to_comp = 0; in ena_com_init_io_sq()
435 io_sq->phase = 1; in ena_com_init_io_sq()
937 struct ena_com_io_sq *io_sq) in ena_com_destroy_io_sq() argument
947 if (io_sq->direction == ENA_COM_IO_QUEUE_DIRECTION_TX) in ena_com_destroy_io_sq()
956 destroy_cmd.sq.sq_idx = io_sq->idx; in ena_com_destroy_io_sq()
972 struct ena_com_io_sq *io_sq, in ena_com_io_queue_free() argument
989 if (io_sq->desc_addr.virt_addr) { in ena_com_io_queue_free()
990 size = io_sq->desc_entry_size * io_sq->q_depth; in ena_com_io_queue_free()
994 io_sq->desc_addr.virt_addr, in ena_com_io_queue_free()
995 io_sq->desc_addr.phys_addr, in ena_com_io_queue_free()
996 io_sq->desc_addr.mem_handle); in ena_com_io_queue_free()
998 io_sq->desc_addr.virt_addr = NULL; in ena_com_io_queue_free()
1001 if (io_sq->bounce_buf_ctrl.base_buffer) { in ena_com_io_queue_free()
1003 io_sq->bounce_buf_ctrl.base_buffer, in ena_com_io_queue_free()
1004 (io_sq->llq_info.desc_list_entry_size * ENA_COM_BOUNCE_BUFFER_CNTRL_CNT)); in ena_com_io_queue_free()
1005 io_sq->bounce_buf_ctrl.base_buffer = NULL; in ena_com_io_queue_free()
1275 struct ena_com_io_sq *io_sq, u16 cq_idx) in ena_com_create_io_sq() argument
1287 if (io_sq->direction == ENA_COM_IO_QUEUE_DIRECTION_TX) in ena_com_create_io_sq()
1296 create_cmd.sq_caps_2 |= io_sq->mem_queue_type & in ena_com_create_io_sq()
1307 create_cmd.sq_depth = io_sq->q_depth; in ena_com_create_io_sq()
1309 if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_HOST) { in ena_com_create_io_sq()
1312 io_sq->desc_addr.phys_addr); in ena_com_create_io_sq()
1329 io_sq->idx = cmd_completion.sq_idx; in ena_com_create_io_sq()
1331 io_sq->db_addr = (u32 __iomem *)((uintptr_t)ena_dev->reg_bar + in ena_com_create_io_sq()
1334 if (io_sq->mem_queue_type == ENA_ADMIN_PLACEMENT_POLICY_DEV) { in ena_com_create_io_sq()
1335 io_sq->header_addr = (u8 __iomem *)((uintptr_t)ena_dev->mem_bar in ena_com_create_io_sq()
1338 io_sq->desc_addr.pbuf_dev_addr = in ena_com_create_io_sq()
1343 ena_trc_dbg(ena_dev, "Created sq[%u], depth[%u]\n", io_sq->idx, io_sq->q_depth); in ena_com_create_io_sq()
1351 struct ena_com_io_sq *io_sq; in ena_com_ind_tbl_convert_to_device() local
1360 io_sq = &ena_dev->io_sq_queues[qid]; in ena_com_ind_tbl_convert_to_device()
1362 if (io_sq->direction != ENA_COM_IO_QUEUE_DIRECTION_RX) in ena_com_ind_tbl_convert_to_device()
1365 rss->rss_ind_tbl[i].cq_idx = io_sq->idx; in ena_com_ind_tbl_convert_to_device()
1496 struct ena_com_io_sq **io_sq, in ena_com_get_io_handlers() argument
1505 *io_sq = &ena_dev->io_sq_queues[qid]; in ena_com_get_io_handlers()
1930 struct ena_com_io_sq *io_sq; in ena_com_create_io_queue() local
1940 io_sq = &ena_dev->io_sq_queues[ctx->qid]; in ena_com_create_io_queue()
1943 memset(io_sq, 0x0, sizeof(*io_sq)); in ena_com_create_io_queue()
1953 io_sq->q_depth = ctx->queue_size; in ena_com_create_io_queue()
1954 io_sq->direction = ctx->direction; in ena_com_create_io_queue()
1955 io_sq->qid = ctx->qid; in ena_com_create_io_queue()
1957 io_sq->mem_queue_type = ctx->mem_queue_type; in ena_com_create_io_queue()
1961 io_sq->tx_max_header_size = in ena_com_create_io_queue()
1964 ret = ena_com_init_io_sq(ena_dev, ctx, io_sq); in ena_com_create_io_queue()
1975 ret = ena_com_create_io_sq(ena_dev, io_sq, io_cq->idx); in ena_com_create_io_queue()
1984 ena_com_io_queue_free(ena_dev, io_sq, io_cq); in ena_com_create_io_queue()
1990 struct ena_com_io_sq *io_sq; in ena_com_destroy_io_queue() local
1999 io_sq = &ena_dev->io_sq_queues[qid]; in ena_com_destroy_io_queue()
2002 ena_com_destroy_io_sq(ena_dev, io_sq); in ena_com_destroy_io_queue()
2005 ena_com_io_queue_free(ena_dev, io_sq, io_cq); in ena_com_destroy_io_queue()