Lines Matching refs:vp_dev

142 	struct virtio_pci_device *vp_dev = to_vp_device(vdev);  in vp_get_features()  local
145 vp_iowrite32(0, &vp_dev->common->device_feature_select); in vp_get_features()
146 features = vp_ioread32(&vp_dev->common->device_feature); in vp_get_features()
147 vp_iowrite32(1, &vp_dev->common->device_feature_select); in vp_get_features()
148 features |= ((u64)vp_ioread32(&vp_dev->common->device_feature) << 32); in vp_get_features()
155 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_transport_features() local
156 struct pci_dev *pci_dev = vp_dev->pci_dev; in vp_transport_features()
166 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_finalize_features() local
181 vp_iowrite32(0, &vp_dev->common->guest_feature_select); in vp_finalize_features()
182 vp_iowrite32((u32)vdev->features, &vp_dev->common->guest_feature); in vp_finalize_features()
183 vp_iowrite32(1, &vp_dev->common->guest_feature_select); in vp_finalize_features()
184 vp_iowrite32(vdev->features >> 32, &vp_dev->common->guest_feature); in vp_finalize_features()
193 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_get() local
198 BUG_ON(offset + len > vp_dev->device_len); in vp_get()
202 b = ioread8(vp_dev->device + offset); in vp_get()
206 w = cpu_to_le16(ioread16(vp_dev->device + offset)); in vp_get()
210 l = cpu_to_le32(ioread32(vp_dev->device + offset)); in vp_get()
214 l = cpu_to_le32(ioread32(vp_dev->device + offset)); in vp_get()
216 l = cpu_to_le32(ioread32(vp_dev->device + offset + sizeof l)); in vp_get()
229 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_set() local
234 BUG_ON(offset + len > vp_dev->device_len); in vp_set()
239 iowrite8(b, vp_dev->device + offset); in vp_set()
243 iowrite16(le16_to_cpu(w), vp_dev->device + offset); in vp_set()
247 iowrite32(le32_to_cpu(l), vp_dev->device + offset); in vp_set()
251 iowrite32(le32_to_cpu(l), vp_dev->device + offset); in vp_set()
253 iowrite32(le32_to_cpu(l), vp_dev->device + offset + sizeof l); in vp_set()
262 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_generation() local
263 return vp_ioread8(&vp_dev->common->config_generation); in vp_generation()
269 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_get_status() local
270 return vp_ioread8(&vp_dev->common->device_status); in vp_get_status()
275 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_set_status() local
278 vp_iowrite8(status, &vp_dev->common->device_status); in vp_set_status()
283 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_reset() local
285 vp_iowrite8(0, &vp_dev->common->device_status); in vp_reset()
291 while (vp_ioread8(&vp_dev->common->device_status)) in vp_reset()
297 static u16 vp_config_vector(struct virtio_pci_device *vp_dev, u16 vector) in vp_config_vector() argument
300 vp_iowrite16(vector, &vp_dev->common->msix_config); in vp_config_vector()
303 return vp_ioread16(&vp_dev->common->msix_config); in vp_config_vector()
306 static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev, in setup_vq() argument
314 struct virtio_pci_common_cfg __iomem *cfg = vp_dev->common; in setup_vq()
331 dev_warn(&vp_dev->pci_dev->dev, "bad queue size %u", num); in setup_vq()
342 SMP_CACHE_BYTES, &vp_dev->vdev, in setup_vq()
357 if (vp_dev->notify_base) { in setup_vq()
359 if ((u64)off * vp_dev->notify_offset_multiplier + 2 in setup_vq()
360 > vp_dev->notify_len) { in setup_vq()
361 dev_warn(&vp_dev->pci_dev->dev, in setup_vq()
364 off, vp_dev->notify_offset_multiplier, in setup_vq()
365 index, vp_dev->notify_len); in setup_vq()
369 vq->priv = (void __force *)vp_dev->notify_base + in setup_vq()
370 off * vp_dev->notify_offset_multiplier; in setup_vq()
372 vq->priv = (void __force *)map_capability(vp_dev->pci_dev, in setup_vq()
373 vp_dev->notify_map_cap, 2, 2, in setup_vq()
374 off * vp_dev->notify_offset_multiplier, 2, in setup_vq()
395 if (!vp_dev->notify_base) in setup_vq()
396 pci_iounmap(vp_dev->pci_dev, (void __iomem __force *)vq->priv); in setup_vq()
408 struct virtio_pci_device *vp_dev = to_vp_device(vdev); in vp_modern_find_vqs() local
419 vp_iowrite16(vq->index, &vp_dev->common->queue_select); in vp_modern_find_vqs()
420 vp_iowrite16(1, &vp_dev->common->queue_enable); in vp_modern_find_vqs()
429 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); in del_vq() local
431 vp_iowrite16(vq->index, &vp_dev->common->queue_select); in del_vq()
433 if (vp_dev->msix_enabled) { in del_vq()
435 &vp_dev->common->queue_msix_vector); in del_vq()
437 vp_ioread16(&vp_dev->common->queue_msix_vector); in del_vq()
440 if (!vp_dev->notify_base) in del_vq()
441 pci_iounmap(vp_dev->pci_dev, (void __force __iomem *)vq->priv); in del_vq()
581 int virtio_pci_modern_probe(struct virtio_pci_device *vp_dev) in virtio_pci_modern_probe() argument
583 struct pci_dev *pci_dev = vp_dev->pci_dev; in virtio_pci_modern_probe()
598 vp_dev->vdev.id.device = pci_dev->subsystem_device; in virtio_pci_modern_probe()
601 vp_dev->vdev.id.device = pci_dev->device - 0x1040; in virtio_pci_modern_probe()
603 vp_dev->vdev.id.vendor = pci_dev->subsystem_vendor; in virtio_pci_modern_probe()
608 &vp_dev->modern_bars); in virtio_pci_modern_probe()
618 &vp_dev->modern_bars); in virtio_pci_modern_probe()
621 &vp_dev->modern_bars); in virtio_pci_modern_probe()
641 &vp_dev->modern_bars); in virtio_pci_modern_probe()
643 err = pci_request_selected_regions(pci_dev, vp_dev->modern_bars, in virtio_pci_modern_probe()
649 vp_dev->common = map_capability(pci_dev, common, in virtio_pci_modern_probe()
653 if (!vp_dev->common) in virtio_pci_modern_probe()
655 vp_dev->isr = map_capability(pci_dev, isr, sizeof(u8), 1, in virtio_pci_modern_probe()
658 if (!vp_dev->isr) in virtio_pci_modern_probe()
665 &vp_dev->notify_offset_multiplier); in virtio_pci_modern_probe()
682 vp_dev->notify_base = map_capability(pci_dev, notify, 2, 2, in virtio_pci_modern_probe()
684 &vp_dev->notify_len); in virtio_pci_modern_probe()
685 if (!vp_dev->notify_base) in virtio_pci_modern_probe()
688 vp_dev->notify_map_cap = notify; in virtio_pci_modern_probe()
695 vp_dev->device = map_capability(pci_dev, device, 0, 4, in virtio_pci_modern_probe()
697 &vp_dev->device_len); in virtio_pci_modern_probe()
698 if (!vp_dev->device) in virtio_pci_modern_probe()
701 vp_dev->vdev.config = &virtio_pci_config_ops; in virtio_pci_modern_probe()
703 vp_dev->vdev.config = &virtio_pci_config_nodev_ops; in virtio_pci_modern_probe()
706 vp_dev->config_vector = vp_config_vector; in virtio_pci_modern_probe()
707 vp_dev->setup_vq = setup_vq; in virtio_pci_modern_probe()
708 vp_dev->del_vq = del_vq; in virtio_pci_modern_probe()
713 if (vp_dev->notify_base) in virtio_pci_modern_probe()
714 pci_iounmap(pci_dev, vp_dev->notify_base); in virtio_pci_modern_probe()
716 pci_iounmap(pci_dev, vp_dev->isr); in virtio_pci_modern_probe()
718 pci_iounmap(pci_dev, vp_dev->common); in virtio_pci_modern_probe()
723 void virtio_pci_modern_remove(struct virtio_pci_device *vp_dev) in virtio_pci_modern_remove() argument
725 struct pci_dev *pci_dev = vp_dev->pci_dev; in virtio_pci_modern_remove()
727 if (vp_dev->device) in virtio_pci_modern_remove()
728 pci_iounmap(pci_dev, vp_dev->device); in virtio_pci_modern_remove()
729 if (vp_dev->notify_base) in virtio_pci_modern_remove()
730 pci_iounmap(pci_dev, vp_dev->notify_base); in virtio_pci_modern_remove()
731 pci_iounmap(pci_dev, vp_dev->isr); in virtio_pci_modern_remove()
732 pci_iounmap(pci_dev, vp_dev->common); in virtio_pci_modern_remove()
733 pci_release_selected_regions(pci_dev, vp_dev->modern_bars); in virtio_pci_modern_remove()