Lines Matching defs:mdev
292 err = mlx5_frag_buf_alloc_node(ndev->mvdev.mdev, nent * MLX5_VDPA_CQE_SIZE, frag_buf,
293 ndev->mvdev.mdev->priv.numa_node);
309 return mlx5_frag_buf_alloc_node(ndev->mvdev.mdev, size, frag_buf,
310 ndev->mvdev.mdev->priv.numa_node);
315 mlx5_frag_buf_free(ndev->mvdev.mdev, &buf->frag_buf);
389 return mlx5_frag_buf_alloc_node(ndev->mvdev.mdev,
391 ndev->mvdev.mdev->priv.numa_node);
396 mlx5_frag_buf_free(ndev->mvdev.mdev, &vqp->frag_buf);
402 struct mlx5_core_dev *mdev = ndev->mvdev.mdev;
415 err = mlx5_db_alloc(ndev->mvdev.mdev, &vqp->db);
436 err = mlx5_cmd_exec(mdev, in, inlen, out, sizeof(out));
451 mlx5_db_free(ndev->mvdev.mdev, &vqp->db);
466 if (mlx5_cmd_exec_in(ndev->mvdev.mdev, destroy_qp, in))
469 mlx5_db_free(ndev->mvdev.mdev, &vqp->db);
538 struct mlx5_core_dev *mdev = ndev->mvdev.mdev;
549 err = mlx5_db_alloc(mdev, &vcq->db);
581 err = mlx5_comp_eqn_get(mdev, 0, &eqn);
591 err = mlx5_core_create_cq(mdev, &vcq->mcq, in, inlen, out, sizeof(out));
608 mlx5_db_free(ndev->mvdev.mdev, &vcq->db);
615 struct mlx5_core_dev *mdev = ndev->mvdev.mdev;
618 if (mlx5_core_destroy_cq(mdev, &vcq->mcq)) {
623 mlx5_db_free(ndev->mvdev.mdev, &vcq->db);
630 struct mlx5_core_dev *mdev = ndev->mvdev.mdev;
643 err = mlx5_cmd_exec_inout(mdev, query_hca_cap, in, out);
695 mlx5_frag_buf_free(ndev->mvdev.mdev, &umem->frag_buf);
730 err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(out));
768 if (mlx5_cmd_exec(ndev->mvdev.mdev, in, sizeof(in), out, sizeof(out)))
805 type_mask = MLX5_CAP_DEV_VDPA_EMULATION(ndev->mvdev.mdev, virtio_queue_type);
847 return MLX5_CAP_GEN_64(mvdev->mdev, general_obj_types) &
853 return MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, event_mode) &
855 pci_msix_can_alloc_dyn(mvdev->mdev->pdev);
925 err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(out));
953 if (mlx5_cmd_exec(ndev->mvdev.mdev, in, sizeof(in), out, sizeof(out))) {
1078 err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, outlen);
1140 err = mlx5_cmd_exec(ndev->mvdev.mdev, in, sizeof(in), out, outlen);
1201 err = mlx5_cmd_exec(ndev->mvdev.mdev, in, inlen, out, sizeof(out));
1225 err = mlx5_cmd_exec(ndev->mvdev.mdev, in, sizeof(in), out, sizeof(out));
1246 if (mlx5_cmd_exec(ndev->mvdev.mdev, in, sizeof(in), out, sizeof(out)))
1549 node->ucast_counter.counter = mlx5_fc_create(ndev->mvdev.mdev, false);
1553 node->mcast_counter.counter = mlx5_fc_create(ndev->mvdev.mdev, false);
1564 mlx5_fc_destroy(ndev->mvdev.mdev, node->ucast_counter.counter);
1575 mlx5_fc_destroy(ndev->mvdev.mdev, node->mcast_counter.counter);
1576 mlx5_fc_destroy(ndev->mvdev.mdev, node->ucast_counter.counter);
1764 ns = mlx5_get_flow_namespace(ndev->mvdev.mdev, MLX5_FLOW_NAMESPACE_BYPASS);
1805 pfmdev = pci_get_drvdata(pci_physfn(mvdev->mdev->pdev));
2335 static u64 get_supported_features(struct mlx5_core_dev *mdev)
2340 dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mdev, device_features_bits_mask);
2342 if (MLX5_CAP_DEV_VDPA_EMULATION(mdev, virtio_version_1_0))
2440 static u8 query_vport_state(struct mlx5_core_dev *mdev, u8 opmod, u16 vport)
2452 err = mlx5_cmd_exec_inout(mdev, query_vport_state, in, out);
2461 if (query_vport_state(mvdev->mdev, MLX5_VPORT_STATE_OP_MOD_VNIC_VPORT, 0) ==
2531 mlx5_notifier_register(ndev->mvdev.mdev, &ndev->nb);
2542 mlx5_notifier_unregister(ndev->mvdev.mdev, &ndev->nb);
2892 if (MLX5_CAP_GEN(mvdev->mdev, umem_uid_0)) {
2984 pci_msix_free_irq(ndev->mvdev.mdev->pdev, ent->map);
3000 pfmdev = pci_get_drvdata(pci_physfn(mvdev->mdev->pdev));
3023 if (MLX5_CAP_GEN(mvdev->mdev, log_min_sf_size) + 12 < PAGE_SHIFT)
3081 err = mlx5_cmd_exec(ndev->mvdev.mdev, in, sizeof(in), out, sizeof(out));
3225 static int query_mtu(struct mlx5_core_dev *mdev, u16 *mtu)
3230 err = mlx5_query_nic_vport_mtu(mdev, &hw_mtu);
3304 static int config_func_mtu(struct mlx5_core_dev *mdev, u16 mtu)
3320 err = mlx5_cmd_exec_in(mdev, modify_nic_vport_context, in);
3334 if (!ndev->mvdev.mdev->pdev)
3346 ent->map = pci_msix_alloc_irq_at(ndev->mvdev.mdev->pdev, MSI_ANY_INDEX, NULL);
3362 struct mlx5_core_dev *mdev;
3371 mdev = mgtdev->madev->mdev;
3375 dev_warn(mdev->device,
3386 dev_warn(mdev->device,
3392 if (!(MLX5_CAP_DEV_VDPA_EMULATION(mdev, virtio_queue_type) &
3394 dev_warn(mdev->device, "missing support for split virtqueues\n");
3398 max_vqs = min_t(int, MLX5_CAP_DEV_VDPA_EMULATION(mdev, max_num_virtio_queues),
3399 1 << MLX5_CAP_GEN(mdev, log_max_rqt_size));
3401 dev_warn(mdev->device,
3415 ndev = vdpa_alloc_device(struct mlx5_vdpa_net, mvdev.vdev, mdev->device, &mlx5_vdpa_ops,
3422 mvdev->mdev = mdev;
3437 err = config_func_mtu(mdev, add_config->net.mtu);
3443 err = query_mtu(mdev, &mtu);
3462 err = mlx5_query_nic_vport_mac_address(mdev, 0, 0, config->mac);
3468 pfmdev = pci_get_drvdata(pci_physfn(mdev->pdev));
3492 mvdev->vdev.dma_dev = &mdev->pdev->dev;
3497 if (MLX5_CAP_GEN(mvdev->mdev, umem_uid_0)) {
3515 mvdev->vdev.mdev = &mgtdev->mgtdev;
3569 struct mlx5_core_dev *mdev = madev->mdev;
3578 mgtdev->mgtdev.device = mdev->device;
3585 MLX5_CAP_DEV_VDPA_EMULATION(mdev, max_num_virtio_queues) + 1;
3586 mgtdev->mgtdev.supported_features = get_supported_features(mdev);