Lines Matching refs:vqp

323 static void rx_post(struct mlx5_vdpa_qp *vqp, int n)  in rx_post()  argument
325 vqp->head += n; in rx_post()
326 vqp->db.db[0] = cpu_to_be32(vqp->head); in rx_post()
332 struct mlx5_vdpa_qp *vqp; in qp_prepare() local
336 vqp = fw ? &mvq->fwqp : &mvq->vqqp; in qp_prepare()
339 if (vqp->fw) { in qp_prepare()
354 MLX5_SET(qpc, qpc, log_page_size, vqp->frag_buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); in qp_prepare()
360 mlx5_fill_page_frag_array(&vqp->frag_buf, pas); in qp_prepare()
363 static int rq_buf_alloc(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp, u32 num_ent) in rq_buf_alloc() argument
366 num_ent * sizeof(struct mlx5_wqe_data_seg), &vqp->frag_buf, in rq_buf_alloc()
370 static void rq_buf_free(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp) in rq_buf_free() argument
372 mlx5_frag_buf_free(ndev->mvdev.mdev, &vqp->frag_buf); in rq_buf_free()
376 struct mlx5_vdpa_qp *vqp) in qp_create() argument
385 if (!vqp->fw) { in qp_create()
386 vqp = &mvq->vqqp; in qp_create()
387 err = rq_buf_alloc(ndev, vqp, mvq->num_ent); in qp_create()
391 err = mlx5_db_alloc(ndev->mvdev.mdev, &vqp->db); in qp_create()
394 inlen += vqp->frag_buf.npages * sizeof(__be64); in qp_create()
403 qp_prepare(ndev, vqp->fw, in, mvq, mvq->num_ent); in qp_create()
409 if (!vqp->fw) in qp_create()
410 MLX5_SET64(qpc, qpc, dbr_addr, vqp->db.dma); in qp_create()
417 vqp->mqp.uid = ndev->mvdev.res.uid; in qp_create()
418 vqp->mqp.qpn = MLX5_GET(create_qp_out, out, qpn); in qp_create()
420 if (!vqp->fw) in qp_create()
421 rx_post(vqp, mvq->num_ent); in qp_create()
426 if (!vqp->fw) in qp_create()
427 mlx5_db_free(ndev->mvdev.mdev, &vqp->db); in qp_create()
429 if (!vqp->fw) in qp_create()
430 rq_buf_free(ndev, vqp); in qp_create()
435 static void qp_destroy(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp) in qp_destroy() argument
440 MLX5_SET(destroy_qp_in, in, qpn, vqp->mqp.qpn); in qp_destroy()
443 mlx5_vdpa_warn(&ndev->mvdev, "destroy qp 0x%x\n", vqp->mqp.qpn); in qp_destroy()
444 if (!vqp->fw) { in qp_destroy()
445 mlx5_db_free(ndev->mvdev.mdev, &vqp->db); in qp_destroy()
446 rq_buf_free(ndev, vqp); in qp_destroy()