Lines Matching defs:vcq
318 static void *get_cqe(struct mlx5_vdpa_cq *vcq, int n)
320 return mlx5_frag_buf_get_wqe(&vcq->buf.fbc, n);
323 static void cq_frag_buf_init(struct mlx5_vdpa_cq *vcq, struct mlx5_vdpa_cq_buf *buf)
330 cqe = get_cqe(vcq, i);
479 static int mlx5_vdpa_poll_one(struct mlx5_vdpa_cq *vcq)
483 cqe64 = next_cqe_sw(vcq);
487 vcq->mcq.cons_index++;
541 struct mlx5_vdpa_cq *vcq = &mvq->cq;
549 err = mlx5_db_alloc(mdev, &vcq->db);
553 vcq->mcq.set_ci_db = vcq->db.db;
554 vcq->mcq.arm_db = vcq->db.db + 1;
555 vcq->mcq.cqe_sz = 64;
557 err = cq_frag_buf_alloc(ndev, &vcq->buf, num_ent);
561 cq_frag_buf_init(vcq, &vcq->buf);
564 MLX5_FLD_SZ_BYTES(create_cq_in, pas[0]) * vcq->buf.frag_buf.npages;
573 mlx5_fill_page_frag_array(&vcq->buf.frag_buf, pas);
576 MLX5_SET(cqc, cqc, log_page_size, vcq->buf.frag_buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT);
589 MLX5_SET64(cqc, cqc, dbr_addr, vcq->db.dma);
591 err = mlx5_core_create_cq(mdev, &vcq->mcq, in, inlen, out, sizeof(out));
595 vcq->mcq.comp = mlx5_vdpa_cq_comp;
596 vcq->cqe = num_ent;
597 vcq->mcq.set_ci_db = vcq->db.db;
598 vcq->mcq.arm_db = vcq->db.db + 1;
606 cq_frag_buf_free(ndev, &vcq->buf);
608 mlx5_db_free(ndev->mvdev.mdev, &vcq->db);
616 struct mlx5_vdpa_cq *vcq = &mvq->cq;
618 if (mlx5_core_destroy_cq(mdev, &vcq->mcq)) {
619 mlx5_vdpa_warn(&ndev->mvdev, "destroy CQ 0x%x\n", vcq->mcq.cqn);
622 cq_frag_buf_free(ndev, &vcq->buf);
623 mlx5_db_free(ndev->mvdev.mdev, &vcq->db);