Lines Matching refs:vq
99 struct virtqueue *vq; member
279 static bool vm_notify(struct virtqueue *vq) in vm_notify() argument
281 struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); in vm_notify()
285 writel(vq->index, vm_dev->base + VIRTIO_MMIO_QUEUE_NOTIFY); in vm_notify()
289 static bool vm_notify_with_data(struct virtqueue *vq) in vm_notify_with_data() argument
291 struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); in vm_notify_with_data()
292 u32 data = vring_notification_data(vq); in vm_notify_with_data()
320 ret |= vring_interrupt(irq, info->vq); in vm_interrupt()
329 static void vm_del_vq(struct virtqueue *vq) in vm_del_vq() argument
331 struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); in vm_del_vq()
332 struct virtio_mmio_vq_info *info = vq->priv; in vm_del_vq()
334 unsigned int index = vq->index; in vm_del_vq()
349 vring_del_virtqueue(vq); in vm_del_vq()
357 struct virtqueue *vq, *n; in vm_del_vqs() local
359 list_for_each_entry_safe(vq, n, &vdev->vqs, list) in vm_del_vqs()
360 vm_del_vq(vq); in vm_del_vqs()
373 void (*callback)(struct virtqueue *vq), in vm_setup_vq() argument
377 bool (*notify)(struct virtqueue *vq); in vm_setup_vq()
379 struct virtqueue *vq; in vm_setup_vq() local
416 vq = vring_create_virtqueue(index, num, VIRTIO_MMIO_VRING_ALIGN, vdev, in vm_setup_vq()
418 if (!vq) { in vm_setup_vq()
423 vq->num_max = num; in vm_setup_vq()
426 writel(virtqueue_get_vring_size(vq), vm_dev->base + VIRTIO_MMIO_QUEUE_NUM); in vm_setup_vq()
428 u64 q_pfn = virtqueue_get_desc_addr(vq) >> PAGE_SHIFT; in vm_setup_vq()
448 addr = virtqueue_get_desc_addr(vq); in vm_setup_vq()
453 addr = virtqueue_get_avail_addr(vq); in vm_setup_vq()
458 addr = virtqueue_get_used_addr(vq); in vm_setup_vq()
466 vq->priv = info; in vm_setup_vq()
467 info->vq = vq; in vm_setup_vq()
473 return vq; in vm_setup_vq()
476 vring_del_virtqueue(vq); in vm_setup_vq()