Lines Matching full:vdpa

3  * VIRTIO based driver for vDPA device
17 #include <linux/vdpa.h>
23 #define MOD_DESC "vDPA bus driver for virtio devices"
28 struct vdpa_device *vdpa; member
53 return to_virtio_vdpa_device(vdev)->vdpa; in vd_get_vdpa()
59 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_get() local
61 vdpa_get_config(vdpa, offset, buf, len); in virtio_vdpa_get()
67 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_set() local
68 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_set()
70 ops->set_config(vdpa, offset, buf, len); in virtio_vdpa_set()
75 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_generation() local
76 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_generation()
79 return ops->get_generation(vdpa); in virtio_vdpa_generation()
86 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_get_status() local
87 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_get_status()
89 return ops->get_status(vdpa); in virtio_vdpa_get_status()
94 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_set_status() local
95 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_set_status()
97 return ops->set_status(vdpa, status); in virtio_vdpa_set_status()
102 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_reset() local
104 vdpa_reset(vdpa); in virtio_vdpa_reset()
109 struct vdpa_device *vdpa = vd_get_vdpa(vq->vdev); in virtio_vdpa_notify() local
110 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_notify()
112 ops->kick_vq(vdpa, vq->index); in virtio_vdpa_notify()
139 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_setup_vq() local
140 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_setup_vq()
153 if (ops->get_vq_ready(vdpa, index)) in virtio_vdpa_setup_vq()
161 num = ops->get_vq_num_max(vdpa); in virtio_vdpa_setup_vq()
168 align = ops->get_vq_align(vdpa); in virtio_vdpa_setup_vq()
180 ops->set_vq_cb(vdpa, index, &cb); in virtio_vdpa_setup_vq()
181 ops->set_vq_num(vdpa, index, virtqueue_get_vring_size(vq)); in virtio_vdpa_setup_vq()
187 if (ops->set_vq_address(vdpa, index, in virtio_vdpa_setup_vq()
194 ops->set_vq_ready(vdpa, index, 1); in virtio_vdpa_setup_vq()
208 ops->set_vq_ready(vdpa, index, 0); in virtio_vdpa_setup_vq()
209 /* VDPA driver should make sure vq is stopeed here */ in virtio_vdpa_setup_vq()
210 WARN_ON(ops->get_vq_ready(vdpa, index)); in virtio_vdpa_setup_vq()
218 struct vdpa_device *vdpa = vd_dev->vdpa; in virtio_vdpa_del_vq() local
219 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_del_vq()
229 ops->set_vq_ready(vdpa, index, 0); in virtio_vdpa_del_vq()
230 WARN_ON(ops->get_vq_ready(vdpa, index)); in virtio_vdpa_del_vq()
253 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_find_vqs() local
254 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_find_vqs()
275 ops->set_config_cb(vdpa, &cb); in virtio_vdpa_find_vqs()
286 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_get_features() local
287 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_get_features()
289 return ops->get_features(vdpa); in virtio_vdpa_get_features()
294 struct vdpa_device *vdpa = vd_get_vdpa(vdev); in virtio_vdpa_finalize_features() local
299 return vdpa_set_features(vdpa, vdev->features); in virtio_vdpa_finalize_features()
305 struct vdpa_device *vdpa = vd_dev->vdpa; in virtio_vdpa_bus_name() local
307 return dev_name(&vdpa->dev); in virtio_vdpa_bus_name()
334 static int virtio_vdpa_probe(struct vdpa_device *vdpa) in virtio_vdpa_probe() argument
336 const struct vdpa_config_ops *ops = vdpa->config; in virtio_vdpa_probe()
344 vd_dev->vdev.dev.parent = vdpa_get_dma_dev(vdpa); in virtio_vdpa_probe()
347 vd_dev->vdpa = vdpa; in virtio_vdpa_probe()
351 vd_dev->vdev.id.device = ops->get_device_id(vdpa); in virtio_vdpa_probe()
355 vd_dev->vdev.id.vendor = ops->get_vendor_id(vdpa); in virtio_vdpa_probe()
361 vdpa_set_drvdata(vdpa, vd_dev); in virtio_vdpa_probe()
373 static void virtio_vdpa_remove(struct vdpa_device *vdpa) in virtio_vdpa_remove() argument
375 struct virtio_vdpa_device *vd_dev = vdpa_get_drvdata(vdpa); in virtio_vdpa_remove()