Lines Matching refs:vdpa
14 #include <linux/vdpa.h>
20 #include <uapi/linux/vdpa.h>
35 struct vdpa_device vdpa;
52 static struct vp_vdpa *vdpa_to_vp(struct vdpa_device *vdpa)
54 return container_of(vdpa, struct vp_vdpa, vdpa);
57 static struct virtio_pci_modern_device *vdpa_to_mdev(struct vdpa_device *vdpa)
59 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
69 static u64 vp_vdpa_get_device_features(struct vdpa_device *vdpa)
71 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
76 static int vp_vdpa_set_driver_features(struct vdpa_device *vdpa, u64 features)
78 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
85 static u64 vp_vdpa_get_driver_features(struct vdpa_device *vdpa)
87 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
92 static u8 vp_vdpa_get_status(struct vdpa_device *vdpa)
94 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
99 static int vp_vdpa_get_vq_irq(struct vdpa_device *vdpa, u16 idx)
101 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
177 "vp-vdpa[%s]-%d\n", pci_name(pdev), i);
192 snprintf(vp_vdpa->msix_name, VP_VDPA_NAME_SIZE, "vp-vdpa[%s]-config\n",
211 static void vp_vdpa_set_status(struct vdpa_device *vdpa, u8 status)
213 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
215 u8 s = vp_vdpa_get_status(vdpa);
225 static int vp_vdpa_reset(struct vdpa_device *vdpa)
227 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
229 u8 s = vp_vdpa_get_status(vdpa);
239 static u16 vp_vdpa_get_vq_num_max(struct vdpa_device *vdpa)
244 static int vp_vdpa_get_vq_state(struct vdpa_device *vdpa, u16 qid,
254 static int vp_vdpa_set_vq_state_split(struct vdpa_device *vdpa,
265 static int vp_vdpa_set_vq_state_packed(struct vdpa_device *vdpa,
279 static int vp_vdpa_set_vq_state(struct vdpa_device *vdpa, u16 qid,
282 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
292 return vp_vdpa_set_vq_state_packed(vdpa, state);
294 return vp_vdpa_set_vq_state_split(vdpa, state);
300 static void vp_vdpa_set_vq_cb(struct vdpa_device *vdpa, u16 qid,
303 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
308 static void vp_vdpa_set_vq_ready(struct vdpa_device *vdpa,
311 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
316 static bool vp_vdpa_get_vq_ready(struct vdpa_device *vdpa, u16 qid)
318 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
323 static void vp_vdpa_set_vq_num(struct vdpa_device *vdpa, u16 qid,
326 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
331 static int vp_vdpa_set_vq_address(struct vdpa_device *vdpa, u16 qid,
335 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
343 static void vp_vdpa_kick_vq(struct vdpa_device *vdpa, u16 qid)
345 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
350 static u32 vp_vdpa_get_generation(struct vdpa_device *vdpa)
352 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
357 static u32 vp_vdpa_get_device_id(struct vdpa_device *vdpa)
359 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
364 static u32 vp_vdpa_get_vendor_id(struct vdpa_device *vdpa)
366 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
371 static u32 vp_vdpa_get_vq_align(struct vdpa_device *vdpa)
376 static size_t vp_vdpa_get_config_size(struct vdpa_device *vdpa)
378 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa);
383 static void vp_vdpa_get_config(struct vdpa_device *vdpa,
387 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
403 static void vp_vdpa_set_config(struct vdpa_device *vdpa,
407 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
416 static void vp_vdpa_set_config_cb(struct vdpa_device *vdpa,
419 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
425 vp_vdpa_get_vq_notification(struct vdpa_device *vdpa, u16 qid)
427 struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa);
483 vp_vdpa = vdpa_alloc_device(struct vp_vdpa, vdpa,
493 vp_vdpa->vdpa.dma_dev = &pdev->dev;
540 vp_vdpa->vdpa.mdev = &vp_vdpa_mgtdev->mgtdev;
541 ret = _vdpa_register_device(&vp_vdpa->vdpa, vp_vdpa->queues);
543 dev_err(&pdev->dev, "Failed to register to vdpa bus\n");
550 put_device(&vp_vdpa->vdpa.dev);
562 _vdpa_unregister_device(&vp_vdpa->vdpa);
625 dev_err(&pdev->dev, "Failed to register vdpa mgmtdev device\n");
656 .name = "vp-vdpa",
665 MODULE_DESCRIPTION("vp-vdpa");