Lines Matching defs:vqp

347 static void rx_post(struct mlx5_vdpa_qp *vqp, int n)
349 vqp->head += n;
350 vqp->db.db[0] = cpu_to_be32(vqp->head);
356 struct mlx5_vdpa_qp *vqp;
360 vqp = fw ? &mvq->fwqp : &mvq->vqqp;
363 if (vqp->fw) {
378 MLX5_SET(qpc, qpc, log_page_size, vqp->frag_buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT);
384 mlx5_fill_page_frag_array(&vqp->frag_buf, pas);
387 static int rq_buf_alloc(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp, u32 num_ent)
390 num_ent * sizeof(struct mlx5_wqe_data_seg), &vqp->frag_buf,
394 static void rq_buf_free(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp)
396 mlx5_frag_buf_free(ndev->mvdev.mdev, &vqp->frag_buf);
400 struct mlx5_vdpa_qp *vqp)
409 if (!vqp->fw) {
410 vqp = &mvq->vqqp;
411 err = rq_buf_alloc(ndev, vqp, mvq->num_ent);
415 err = mlx5_db_alloc(ndev->mvdev.mdev, &vqp->db);
418 inlen += vqp->frag_buf.npages * sizeof(__be64);
427 qp_prepare(ndev, vqp->fw, in, mvq, mvq->num_ent);
433 if (!vqp->fw)
434 MLX5_SET64(qpc, qpc, dbr_addr, vqp->db.dma);
441 vqp->mqp.uid = ndev->mvdev.res.uid;
442 vqp->mqp.qpn = MLX5_GET(create_qp_out, out, qpn);
444 if (!vqp->fw)
445 rx_post(vqp, mvq->num_ent);
450 if (!vqp->fw)
451 mlx5_db_free(ndev->mvdev.mdev, &vqp->db);
453 if (!vqp->fw)
454 rq_buf_free(ndev, vqp);
459 static void qp_destroy(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp)
464 MLX5_SET(destroy_qp_in, in, qpn, vqp->mqp.qpn);
467 mlx5_vdpa_warn(&ndev->mvdev, "destroy qp 0x%x\n", vqp->mqp.qpn);
468 if (!vqp->fw) {
469 mlx5_db_free(ndev->mvdev.mdev, &vqp->db);
470 rq_buf_free(ndev, vqp);