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