Lines Matching refs:fdev
55 dma_device = &conn->fdev->mdev->pdev->dev; in mlx5_fpga_conn_map_buf()
60 mlx5_fpga_warn(conn->fdev, "DMA error on sg 0: %d\n", err); in mlx5_fpga_conn_map_buf()
72 mlx5_fpga_warn(conn->fdev, "DMA error on sg 1: %d\n", err); in mlx5_fpga_conn_map_buf()
87 dma_device = &conn->fdev->mdev->pdev->dev; in mlx5_fpga_conn_unmap_buf()
116 data->lkey = cpu_to_be32(conn->fdev->conn_res.mkey.key); in mlx5_fpga_conn_post_recv()
136 mlx5_write64(wqe, conn->fdev->conn_res.uar->map + MLX5_BF_OFFSET, NULL); in mlx5_fpga_conn_notify_hw()
156 data->lkey = cpu_to_be32(conn->fdev->conn_res.mkey.key); in mlx5_fpga_conn_post_send()
261 mlx5_fpga_warn(conn->fdev, "RQ buf %p on FPGA QP %u completion status %d\n", in mlx5_fpga_conn_rq_cqe()
264 mlx5_fpga_dbg(conn->fdev, "RQ buf %p on FPGA QP %u completion status %d\n", in mlx5_fpga_conn_rq_cqe()
275 mlx5_fpga_dbg(conn->fdev, "Message with %u bytes received successfully\n", in mlx5_fpga_conn_rq_cqe()
282 mlx5_fpga_warn(conn->fdev, in mlx5_fpga_conn_rq_cqe()
315 mlx5_fpga_warn(conn->fdev, "SQ buf %p on FPGA QP %u completion status %d\n", in mlx5_fpga_conn_sq_cqe()
318 mlx5_fpga_dbg(conn->fdev, "SQ buf %p on FPGA QP %u completion status %d\n", in mlx5_fpga_conn_sq_cqe()
324 buf->complete(conn, conn->fdev, buf, status); in mlx5_fpga_conn_sq_cqe()
352 mlx5_fpga_warn(conn->fdev, "Unexpected cqe opcode %u\n", in mlx5_fpga_conn_handle_cqe()
360 conn->fdev->conn_res.uar->map, conn->cq.wq.cc); in mlx5_fpga_conn_arm_cq()
369 mlx5_fpga_warn(conn->fdev, "CQ event %u on CQ #%u\n", event, mcq->cqn); in mlx5_fpga_conn_cq_event()
377 mlx5_fpga_warn(conn->fdev, "QP event %u on QP #%u\n", event, mqp->qpn); in mlx5_fpga_conn_event()
400 mlx5_fpga_dbg(conn->fdev, "Re-arming CQ with cc# %u\n", conn->cq.wq.cc); in mlx5_fpga_conn_cqes()
427 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_create_cq() local
428 struct mlx5_core_dev *mdev = fdev->mdev; in mlx5_fpga_conn_create_cq()
469 MLX5_SET(cqc, cqc, uar_page, fdev->conn_res.uar->index); in mlx5_fpga_conn_create_cq()
492 conn->cq.mcq.uar = fdev->conn_res.uar; in mlx5_fpga_conn_create_cq()
496 mlx5_fpga_dbg(fdev, "Created CQ #0x%x\n", conn->cq.mcq.cqn); in mlx5_fpga_conn_create_cq()
510 mlx5_core_destroy_cq(conn->fdev->mdev, &conn->cq.mcq); in mlx5_fpga_conn_destroy_cq()
516 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_create_wq() local
517 struct mlx5_core_dev *mdev = fdev->mdev; in mlx5_fpga_conn_create_wq()
530 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_create_qp() local
531 struct mlx5_core_dev *mdev = fdev->mdev; in mlx5_fpga_conn_create_qp()
574 MLX5_SET(qpc, qpc, uar_page, fdev->conn_res.uar->index); in mlx5_fpga_conn_create_qp()
581 MLX5_SET(qpc, qpc, pd, fdev->conn_res.pdn); in mlx5_fpga_conn_create_qp()
600 mlx5_fpga_dbg(fdev, "Created QP #0x%x\n", conn->qp.mqp.qpn); in mlx5_fpga_conn_create_qp()
641 buf->complete(conn, conn->fdev, buf, MLX5_CQE_SYNDROME_WR_FLUSH_ERR); in mlx5_fpga_conn_flush_send_bufs()
647 buf->complete(conn, conn->fdev, buf, MLX5_CQE_SYNDROME_WR_FLUSH_ERR); in mlx5_fpga_conn_flush_send_bufs()
653 mlx5_core_destroy_qp(conn->fdev->mdev, &conn->qp.mqp); in mlx5_fpga_conn_destroy_qp()
663 struct mlx5_core_dev *mdev = conn->fdev->mdev; in mlx5_fpga_conn_reset_qp()
665 mlx5_fpga_dbg(conn->fdev, "Modifying QP %u to RST\n", conn->qp.mqp.qpn); in mlx5_fpga_conn_reset_qp()
673 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_init_qp() local
674 struct mlx5_core_dev *mdev = fdev->mdev; in mlx5_fpga_conn_init_qp()
678 mlx5_fpga_dbg(conn->fdev, "Modifying QP %u to INIT\n", conn->qp.mqp.qpn); in mlx5_fpga_conn_init_qp()
690 MLX5_SET(qpc, qpc, pd, conn->fdev->conn_res.pdn); in mlx5_fpga_conn_init_qp()
698 mlx5_fpga_warn(fdev, "qp_modify RST2INIT failed: %d\n", err); in mlx5_fpga_conn_init_qp()
709 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_rtr_qp() local
710 struct mlx5_core_dev *mdev = fdev->mdev; in mlx5_fpga_conn_rtr_qp()
714 mlx5_fpga_dbg(conn->fdev, "QP RTR\n"); in mlx5_fpga_conn_rtr_qp()
743 mlx5_fpga_warn(fdev, "qp_modify RST2INIT failed: %d\n", err); in mlx5_fpga_conn_rtr_qp()
754 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_rts_qp() local
755 struct mlx5_core_dev *mdev = fdev->mdev; in mlx5_fpga_conn_rts_qp()
760 mlx5_fpga_dbg(conn->fdev, "QP RTS\n"); in mlx5_fpga_conn_rts_qp()
780 mlx5_fpga_warn(fdev, "qp_modify RST2INIT failed: %d\n", err); in mlx5_fpga_conn_rts_qp()
791 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_connect() local
795 err = mlx5_fpga_modify_qp(conn->fdev->mdev, conn->fpga_qpn, in mlx5_fpga_conn_connect()
798 mlx5_fpga_err(fdev, "Failed to activate FPGA RC QP: %d\n", err); in mlx5_fpga_conn_connect()
804 mlx5_fpga_err(fdev, "Failed to change QP state to reset\n"); in mlx5_fpga_conn_connect()
810 mlx5_fpga_err(fdev, "Failed to modify QP from RESET to INIT\n"); in mlx5_fpga_conn_connect()
820 mlx5_fpga_err(fdev, "Failed to change QP state from INIT to RTR\n"); in mlx5_fpga_conn_connect()
826 mlx5_fpga_err(fdev, "Failed to change QP state from RTR to RTS\n"); in mlx5_fpga_conn_connect()
835 if (mlx5_fpga_modify_qp(conn->fdev->mdev, conn->fpga_qpn, in mlx5_fpga_conn_connect()
837 mlx5_fpga_err(fdev, "Failed to revert FPGA QP to INIT\n"); in mlx5_fpga_conn_connect()
842 struct mlx5_fpga_conn *mlx5_fpga_conn_create(struct mlx5_fpga_device *fdev, in mlx5_fpga_conn_create() argument
857 conn->fdev = fdev; in mlx5_fpga_conn_create()
866 err = mlx5_query_nic_vport_mac_address(fdev->mdev, 0, remote_mac); in mlx5_fpga_conn_create()
868 mlx5_fpga_err(fdev, "Failed to query local MAC: %d\n", err); in mlx5_fpga_conn_create()
879 err = mlx5_core_reserved_gid_alloc(fdev->mdev, &conn->qp.sgid_index); in mlx5_fpga_conn_create()
881 mlx5_fpga_err(fdev, "Failed to allocate SGID: %d\n", err); in mlx5_fpga_conn_create()
886 err = mlx5_core_roce_gid_set(fdev->mdev, conn->qp.sgid_index, in mlx5_fpga_conn_create()
891 mlx5_fpga_err(fdev, "Failed to set SGID: %d\n", err); in mlx5_fpga_conn_create()
895 mlx5_fpga_dbg(fdev, "Reserved SGID index %u\n", conn->qp.sgid_index); in mlx5_fpga_conn_create()
903 mlx5_fpga_err(fdev, "Failed to create CQ: %d\n", err); in mlx5_fpga_conn_create()
912 mlx5_fpga_err(fdev, "Failed to create QP: %d\n", err); in mlx5_fpga_conn_create()
929 err = mlx5_fpga_create_qp(fdev->mdev, &conn->fpga_qpc, in mlx5_fpga_conn_create()
932 mlx5_fpga_err(fdev, "Failed to create FPGA RC QP: %d\n", err); in mlx5_fpga_conn_create()
943 mlx5_fpga_dbg(fdev, "FPGA QPN is %u\n", conn->fpga_qpn); in mlx5_fpga_conn_create()
948 mlx5_fpga_destroy_qp(conn->fdev->mdev, conn->fpga_qpn); in mlx5_fpga_conn_create()
954 mlx5_core_roce_gid_set(fdev->mdev, conn->qp.sgid_index, 0, 0, NULL, in mlx5_fpga_conn_create()
957 mlx5_core_reserved_gid_free(fdev->mdev, conn->qp.sgid_index); in mlx5_fpga_conn_create()
966 struct mlx5_fpga_device *fdev = conn->fdev; in mlx5_fpga_conn_destroy() local
967 struct mlx5_core_dev *mdev = fdev->mdev; in mlx5_fpga_conn_destroy()
974 mlx5_fpga_destroy_qp(conn->fdev->mdev, conn->fpga_qpn); in mlx5_fpga_conn_destroy()
978 mlx5_fpga_warn(fdev, "qp_modify 2ERR failed: %d\n", err); in mlx5_fpga_conn_destroy()
982 mlx5_core_roce_gid_set(conn->fdev->mdev, conn->qp.sgid_index, 0, 0, in mlx5_fpga_conn_destroy()
984 mlx5_core_reserved_gid_free(conn->fdev->mdev, conn->qp.sgid_index); in mlx5_fpga_conn_destroy()
988 int mlx5_fpga_conn_device_init(struct mlx5_fpga_device *fdev) in mlx5_fpga_conn_device_init() argument
992 err = mlx5_nic_vport_enable_roce(fdev->mdev); in mlx5_fpga_conn_device_init()
994 mlx5_fpga_err(fdev, "Failed to enable RoCE: %d\n", err); in mlx5_fpga_conn_device_init()
998 fdev->conn_res.uar = mlx5_get_uars_page(fdev->mdev); in mlx5_fpga_conn_device_init()
999 if (IS_ERR(fdev->conn_res.uar)) { in mlx5_fpga_conn_device_init()
1000 err = PTR_ERR(fdev->conn_res.uar); in mlx5_fpga_conn_device_init()
1001 mlx5_fpga_err(fdev, "get_uars_page failed, %d\n", err); in mlx5_fpga_conn_device_init()
1004 mlx5_fpga_dbg(fdev, "Allocated UAR index %u\n", in mlx5_fpga_conn_device_init()
1005 fdev->conn_res.uar->index); in mlx5_fpga_conn_device_init()
1007 err = mlx5_core_alloc_pd(fdev->mdev, &fdev->conn_res.pdn); in mlx5_fpga_conn_device_init()
1009 mlx5_fpga_err(fdev, "alloc pd failed, %d\n", err); in mlx5_fpga_conn_device_init()
1012 mlx5_fpga_dbg(fdev, "Allocated PD %u\n", fdev->conn_res.pdn); in mlx5_fpga_conn_device_init()
1014 err = mlx5_fpga_conn_create_mkey(fdev->mdev, fdev->conn_res.pdn, in mlx5_fpga_conn_device_init()
1015 &fdev->conn_res.mkey); in mlx5_fpga_conn_device_init()
1017 mlx5_fpga_err(fdev, "create mkey failed, %d\n", err); in mlx5_fpga_conn_device_init()
1020 mlx5_fpga_dbg(fdev, "Created mkey 0x%x\n", fdev->conn_res.mkey.key); in mlx5_fpga_conn_device_init()
1025 mlx5_core_dealloc_pd(fdev->mdev, fdev->conn_res.pdn); in mlx5_fpga_conn_device_init()
1027 mlx5_put_uars_page(fdev->mdev, fdev->conn_res.uar); in mlx5_fpga_conn_device_init()
1029 mlx5_nic_vport_disable_roce(fdev->mdev); in mlx5_fpga_conn_device_init()
1034 void mlx5_fpga_conn_device_cleanup(struct mlx5_fpga_device *fdev) in mlx5_fpga_conn_device_cleanup() argument
1036 mlx5_core_destroy_mkey(fdev->mdev, &fdev->conn_res.mkey); in mlx5_fpga_conn_device_cleanup()
1037 mlx5_core_dealloc_pd(fdev->mdev, fdev->conn_res.pdn); in mlx5_fpga_conn_device_cleanup()
1038 mlx5_put_uars_page(fdev->mdev, fdev->conn_res.uar); in mlx5_fpga_conn_device_cleanup()
1039 mlx5_nic_vport_disable_roce(fdev->mdev); in mlx5_fpga_conn_device_cleanup()