Lines Matching defs:vcq
294 static void *get_cqe(struct mlx5_vdpa_cq *vcq, int n)
296 return mlx5_frag_buf_get_wqe(&vcq->buf.fbc, n);
299 static void cq_frag_buf_init(struct mlx5_vdpa_cq *vcq, struct mlx5_vdpa_cq_buf *buf)
306 cqe = get_cqe(vcq, i);
455 static int mlx5_vdpa_poll_one(struct mlx5_vdpa_cq *vcq)
459 cqe64 = next_cqe_sw(vcq);
463 vcq->mcq.cons_index++;
513 struct mlx5_vdpa_cq *vcq = &mvq->cq;
521 err = mlx5_db_alloc(mdev, &vcq->db);
525 vcq->mcq.set_ci_db = vcq->db.db;
526 vcq->mcq.arm_db = vcq->db.db + 1;
527 vcq->mcq.cqe_sz = 64;
529 err = cq_frag_buf_alloc(ndev, &vcq->buf, num_ent);
533 cq_frag_buf_init(vcq, &vcq->buf);
536 MLX5_FLD_SZ_BYTES(create_cq_in, pas[0]) * vcq->buf.frag_buf.npages;
545 mlx5_fill_page_frag_array(&vcq->buf.frag_buf, pas);
548 MLX5_SET(cqc, cqc, log_page_size, vcq->buf.frag_buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT);
561 MLX5_SET64(cqc, cqc, dbr_addr, vcq->db.dma);
563 err = mlx5_core_create_cq(mdev, &vcq->mcq, in, inlen, out, sizeof(out));
567 vcq->mcq.comp = mlx5_vdpa_cq_comp;
568 vcq->cqe = num_ent;
569 vcq->mcq.set_ci_db = vcq->db.db;
570 vcq->mcq.arm_db = vcq->db.db + 1;
578 cq_frag_buf_free(ndev, &vcq->buf);
580 mlx5_db_free(ndev->mvdev.mdev, &vcq->db);
588 struct mlx5_vdpa_cq *vcq = &mvq->cq;
590 if (mlx5_core_destroy_cq(mdev, &vcq->mcq)) {
591 mlx5_vdpa_warn(&ndev->mvdev, "destroy CQ 0x%x\n", vcq->mcq.cqn);
594 cq_frag_buf_free(ndev, &vcq->buf);
595 mlx5_db_free(ndev->mvdev.mdev, &vcq->db);