vp_dev 30 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 33 drivers/virtio/virtio_pci_common.c if (vp_dev->intx_enabled) vp_dev 34 drivers/virtio/virtio_pci_common.c synchronize_irq(vp_dev->pci_dev->irq); vp_dev 36 drivers/virtio/virtio_pci_common.c for (i = 0; i < vp_dev->msix_vectors; ++i) vp_dev 37 drivers/virtio/virtio_pci_common.c synchronize_irq(pci_irq_vector(vp_dev->pci_dev, i)); vp_dev 52 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = opaque; vp_dev 54 drivers/virtio/virtio_pci_common.c virtio_config_changed(&vp_dev->vdev); vp_dev 61 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = opaque; vp_dev 66 drivers/virtio/virtio_pci_common.c spin_lock_irqsave(&vp_dev->lock, flags); vp_dev 67 drivers/virtio/virtio_pci_common.c list_for_each_entry(info, &vp_dev->virtqueues, node) { vp_dev 71 drivers/virtio/virtio_pci_common.c spin_unlock_irqrestore(&vp_dev->lock, flags); vp_dev 84 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = opaque; vp_dev 89 drivers/virtio/virtio_pci_common.c isr = ioread8(vp_dev->isr); vp_dev 105 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 106 drivers/virtio/virtio_pci_common.c const char *name = dev_name(&vp_dev->vdev.dev); vp_dev 111 drivers/virtio/virtio_pci_common.c vp_dev->msix_vectors = nvectors; vp_dev 113 drivers/virtio/virtio_pci_common.c vp_dev->msix_names = kmalloc_array(nvectors, vp_dev 114 drivers/virtio/virtio_pci_common.c sizeof(*vp_dev->msix_names), vp_dev 116 drivers/virtio/virtio_pci_common.c if (!vp_dev->msix_names) vp_dev 118 drivers/virtio/virtio_pci_common.c vp_dev->msix_affinity_masks vp_dev 119 drivers/virtio/virtio_pci_common.c = kcalloc(nvectors, sizeof(*vp_dev->msix_affinity_masks), vp_dev 121 drivers/virtio/virtio_pci_common.c if (!vp_dev->msix_affinity_masks) vp_dev 124 drivers/virtio/virtio_pci_common.c if (!alloc_cpumask_var(&vp_dev->msix_affinity_masks[i], vp_dev 133 drivers/virtio/virtio_pci_common.c err = pci_alloc_irq_vectors_affinity(vp_dev->pci_dev, nvectors, vp_dev 137 drivers/virtio/virtio_pci_common.c vp_dev->msix_enabled = 1; vp_dev 140 drivers/virtio/virtio_pci_common.c v = vp_dev->msix_used_vectors; vp_dev 141 drivers/virtio/virtio_pci_common.c snprintf(vp_dev->msix_names[v], sizeof *vp_dev->msix_names, vp_dev 143 drivers/virtio/virtio_pci_common.c err = request_irq(pci_irq_vector(vp_dev->pci_dev, v), vp_dev 144 drivers/virtio/virtio_pci_common.c vp_config_changed, 0, vp_dev->msix_names[v], vp_dev 145 drivers/virtio/virtio_pci_common.c vp_dev); vp_dev 148 drivers/virtio/virtio_pci_common.c ++vp_dev->msix_used_vectors; vp_dev 150 drivers/virtio/virtio_pci_common.c v = vp_dev->config_vector(vp_dev, v); vp_dev 159 drivers/virtio/virtio_pci_common.c v = vp_dev->msix_used_vectors; vp_dev 160 drivers/virtio/virtio_pci_common.c snprintf(vp_dev->msix_names[v], sizeof *vp_dev->msix_names, vp_dev 162 drivers/virtio/virtio_pci_common.c err = request_irq(pci_irq_vector(vp_dev->pci_dev, v), vp_dev 163 drivers/virtio/virtio_pci_common.c vp_vring_interrupt, 0, vp_dev->msix_names[v], vp_dev 164 drivers/virtio/virtio_pci_common.c vp_dev); vp_dev 167 drivers/virtio/virtio_pci_common.c ++vp_dev->msix_used_vectors; vp_dev 180 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 189 drivers/virtio/virtio_pci_common.c vq = vp_dev->setup_vq(vp_dev, info, index, callback, name, ctx, vp_dev 196 drivers/virtio/virtio_pci_common.c spin_lock_irqsave(&vp_dev->lock, flags); vp_dev 197 drivers/virtio/virtio_pci_common.c list_add(&info->node, &vp_dev->virtqueues); vp_dev 198 drivers/virtio/virtio_pci_common.c spin_unlock_irqrestore(&vp_dev->lock, flags); vp_dev 203 drivers/virtio/virtio_pci_common.c vp_dev->vqs[index] = info; vp_dev 213 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); vp_dev 214 drivers/virtio/virtio_pci_common.c struct virtio_pci_vq_info *info = vp_dev->vqs[vq->index]; vp_dev 217 drivers/virtio/virtio_pci_common.c spin_lock_irqsave(&vp_dev->lock, flags); vp_dev 219 drivers/virtio/virtio_pci_common.c spin_unlock_irqrestore(&vp_dev->lock, flags); vp_dev 221 drivers/virtio/virtio_pci_common.c vp_dev->del_vq(info); vp_dev 228 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 233 drivers/virtio/virtio_pci_common.c if (vp_dev->per_vq_vectors) { vp_dev 234 drivers/virtio/virtio_pci_common.c int v = vp_dev->vqs[vq->index]->msix_vector; vp_dev 237 drivers/virtio/virtio_pci_common.c int irq = pci_irq_vector(vp_dev->pci_dev, v); vp_dev 245 drivers/virtio/virtio_pci_common.c vp_dev->per_vq_vectors = false; vp_dev 247 drivers/virtio/virtio_pci_common.c if (vp_dev->intx_enabled) { vp_dev 248 drivers/virtio/virtio_pci_common.c free_irq(vp_dev->pci_dev->irq, vp_dev); vp_dev 249 drivers/virtio/virtio_pci_common.c vp_dev->intx_enabled = 0; vp_dev 252 drivers/virtio/virtio_pci_common.c for (i = 0; i < vp_dev->msix_used_vectors; ++i) vp_dev 253 drivers/virtio/virtio_pci_common.c free_irq(pci_irq_vector(vp_dev->pci_dev, i), vp_dev); vp_dev 255 drivers/virtio/virtio_pci_common.c if (vp_dev->msix_affinity_masks) { vp_dev 256 drivers/virtio/virtio_pci_common.c for (i = 0; i < vp_dev->msix_vectors; i++) vp_dev 257 drivers/virtio/virtio_pci_common.c if (vp_dev->msix_affinity_masks[i]) vp_dev 258 drivers/virtio/virtio_pci_common.c free_cpumask_var(vp_dev->msix_affinity_masks[i]); vp_dev 261 drivers/virtio/virtio_pci_common.c if (vp_dev->msix_enabled) { vp_dev 263 drivers/virtio/virtio_pci_common.c vp_dev->config_vector(vp_dev, VIRTIO_MSI_NO_VECTOR); vp_dev 265 drivers/virtio/virtio_pci_common.c pci_free_irq_vectors(vp_dev->pci_dev); vp_dev 266 drivers/virtio/virtio_pci_common.c vp_dev->msix_enabled = 0; vp_dev 269 drivers/virtio/virtio_pci_common.c vp_dev->msix_vectors = 0; vp_dev 270 drivers/virtio/virtio_pci_common.c vp_dev->msix_used_vectors = 0; vp_dev 271 drivers/virtio/virtio_pci_common.c kfree(vp_dev->msix_names); vp_dev 272 drivers/virtio/virtio_pci_common.c vp_dev->msix_names = NULL; vp_dev 273 drivers/virtio/virtio_pci_common.c kfree(vp_dev->msix_affinity_masks); vp_dev 274 drivers/virtio/virtio_pci_common.c vp_dev->msix_affinity_masks = NULL; vp_dev 275 drivers/virtio/virtio_pci_common.c kfree(vp_dev->vqs); vp_dev 276 drivers/virtio/virtio_pci_common.c vp_dev->vqs = NULL; vp_dev 285 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 289 drivers/virtio/virtio_pci_common.c vp_dev->vqs = kcalloc(nvqs, sizeof(*vp_dev->vqs), GFP_KERNEL); vp_dev 290 drivers/virtio/virtio_pci_common.c if (!vp_dev->vqs) vp_dev 309 drivers/virtio/virtio_pci_common.c vp_dev->per_vq_vectors = per_vq_vectors; vp_dev 310 drivers/virtio/virtio_pci_common.c allocated_vectors = vp_dev->msix_used_vectors; vp_dev 319 drivers/virtio/virtio_pci_common.c else if (vp_dev->per_vq_vectors) vp_dev 331 drivers/virtio/virtio_pci_common.c if (!vp_dev->per_vq_vectors || msix_vec == VIRTIO_MSI_NO_VECTOR) vp_dev 335 drivers/virtio/virtio_pci_common.c snprintf(vp_dev->msix_names[msix_vec], vp_dev 336 drivers/virtio/virtio_pci_common.c sizeof *vp_dev->msix_names, vp_dev 338 drivers/virtio/virtio_pci_common.c dev_name(&vp_dev->vdev.dev), names[i]); vp_dev 339 drivers/virtio/virtio_pci_common.c err = request_irq(pci_irq_vector(vp_dev->pci_dev, msix_vec), vp_dev 341 drivers/virtio/virtio_pci_common.c vp_dev->msix_names[msix_vec], vp_dev 357 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 360 drivers/virtio/virtio_pci_common.c vp_dev->vqs = kcalloc(nvqs, sizeof(*vp_dev->vqs), GFP_KERNEL); vp_dev 361 drivers/virtio/virtio_pci_common.c if (!vp_dev->vqs) vp_dev 364 drivers/virtio/virtio_pci_common.c err = request_irq(vp_dev->pci_dev->irq, vp_interrupt, IRQF_SHARED, vp_dev 365 drivers/virtio/virtio_pci_common.c dev_name(&vdev->dev), vp_dev); vp_dev 369 drivers/virtio/virtio_pci_common.c vp_dev->intx_enabled = 1; vp_dev 370 drivers/virtio/virtio_pci_common.c vp_dev->per_vq_vectors = false; vp_dev 413 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 415 drivers/virtio/virtio_pci_common.c return pci_name(vp_dev->pci_dev); vp_dev 426 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 427 drivers/virtio/virtio_pci_common.c struct virtio_pci_vq_info *info = vp_dev->vqs[vq->index]; vp_dev 434 drivers/virtio/virtio_pci_common.c if (vp_dev->msix_enabled) { vp_dev 435 drivers/virtio/virtio_pci_common.c mask = vp_dev->msix_affinity_masks[info->msix_vector]; vp_dev 436 drivers/virtio/virtio_pci_common.c irq = pci_irq_vector(vp_dev->pci_dev, info->msix_vector); vp_dev 449 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 451 drivers/virtio/virtio_pci_common.c if (!vp_dev->per_vq_vectors || vp_dev 452 drivers/virtio/virtio_pci_common.c vp_dev->vqs[index]->msix_vector == VIRTIO_MSI_NO_VECTOR) vp_dev 455 drivers/virtio/virtio_pci_common.c return pci_irq_get_affinity(vp_dev->pci_dev, vp_dev 456 drivers/virtio/virtio_pci_common.c vp_dev->vqs[index]->msix_vector); vp_dev 463 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); vp_dev 466 drivers/virtio/virtio_pci_common.c ret = virtio_device_freeze(&vp_dev->vdev); vp_dev 476 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); vp_dev 484 drivers/virtio/virtio_pci_common.c return virtio_device_restore(&vp_dev->vdev); vp_dev 504 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 509 drivers/virtio/virtio_pci_common.c kfree(vp_dev); vp_dev 515 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev, *reg_dev = NULL; vp_dev 519 drivers/virtio/virtio_pci_common.c vp_dev = kzalloc(sizeof(struct virtio_pci_device), GFP_KERNEL); vp_dev 520 drivers/virtio/virtio_pci_common.c if (!vp_dev) vp_dev 523 drivers/virtio/virtio_pci_common.c pci_set_drvdata(pci_dev, vp_dev); vp_dev 524 drivers/virtio/virtio_pci_common.c vp_dev->vdev.dev.parent = &pci_dev->dev; vp_dev 525 drivers/virtio/virtio_pci_common.c vp_dev->vdev.dev.release = virtio_pci_release_dev; vp_dev 526 drivers/virtio/virtio_pci_common.c vp_dev->pci_dev = pci_dev; vp_dev 527 drivers/virtio/virtio_pci_common.c INIT_LIST_HEAD(&vp_dev->virtqueues); vp_dev 528 drivers/virtio/virtio_pci_common.c spin_lock_init(&vp_dev->lock); vp_dev 536 drivers/virtio/virtio_pci_common.c rc = virtio_pci_legacy_probe(vp_dev); vp_dev 539 drivers/virtio/virtio_pci_common.c rc = virtio_pci_modern_probe(vp_dev); vp_dev 543 drivers/virtio/virtio_pci_common.c rc = virtio_pci_modern_probe(vp_dev); vp_dev 545 drivers/virtio/virtio_pci_common.c rc = virtio_pci_legacy_probe(vp_dev); vp_dev 552 drivers/virtio/virtio_pci_common.c rc = register_virtio_device(&vp_dev->vdev); vp_dev 553 drivers/virtio/virtio_pci_common.c reg_dev = vp_dev; vp_dev 560 drivers/virtio/virtio_pci_common.c if (vp_dev->ioaddr) vp_dev 561 drivers/virtio/virtio_pci_common.c virtio_pci_legacy_remove(vp_dev); vp_dev 563 drivers/virtio/virtio_pci_common.c virtio_pci_modern_remove(vp_dev); vp_dev 568 drivers/virtio/virtio_pci_common.c put_device(&vp_dev->vdev.dev); vp_dev 570 drivers/virtio/virtio_pci_common.c kfree(vp_dev); vp_dev 576 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); vp_dev 577 drivers/virtio/virtio_pci_common.c struct device *dev = get_device(&vp_dev->vdev.dev); vp_dev 581 drivers/virtio/virtio_pci_common.c unregister_virtio_device(&vp_dev->vdev); vp_dev 583 drivers/virtio/virtio_pci_common.c if (vp_dev->ioaddr) vp_dev 584 drivers/virtio/virtio_pci_common.c virtio_pci_legacy_remove(vp_dev); vp_dev 586 drivers/virtio/virtio_pci_common.c virtio_pci_modern_remove(vp_dev); vp_dev 594 drivers/virtio/virtio_pci_common.c struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); vp_dev 595 drivers/virtio/virtio_pci_common.c struct virtio_device *vdev = &vp_dev->vdev; vp_dev 97 drivers/virtio/virtio_pci_common.h struct virtqueue *(*setup_vq)(struct virtio_pci_device *vp_dev, vp_dev 106 drivers/virtio/virtio_pci_common.h u16 (*config_vector)(struct virtio_pci_device *vp_dev, u16 vector); vp_dev 149 drivers/virtio/virtio_pci_common.h static inline int virtio_pci_legacy_probe(struct virtio_pci_device *vp_dev) vp_dev 153 drivers/virtio/virtio_pci_common.h static inline void virtio_pci_legacy_remove(struct virtio_pci_device *vp_dev) vp_dev 22 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 26 drivers/virtio/virtio_pci_legacy.c return ioread32(vp_dev->ioaddr + VIRTIO_PCI_HOST_FEATURES); vp_dev 32 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 41 drivers/virtio/virtio_pci_legacy.c iowrite32(vdev->features, vp_dev->ioaddr + VIRTIO_PCI_GUEST_FEATURES); vp_dev 50 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 51 drivers/virtio/virtio_pci_legacy.c void __iomem *ioaddr = vp_dev->ioaddr + vp_dev 52 drivers/virtio/virtio_pci_legacy.c VIRTIO_PCI_CONFIG_OFF(vp_dev->msix_enabled) + vp_dev 66 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 67 drivers/virtio/virtio_pci_legacy.c void __iomem *ioaddr = vp_dev->ioaddr + vp_dev 68 drivers/virtio/virtio_pci_legacy.c VIRTIO_PCI_CONFIG_OFF(vp_dev->msix_enabled) + vp_dev 80 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 81 drivers/virtio/virtio_pci_legacy.c return ioread8(vp_dev->ioaddr + VIRTIO_PCI_STATUS); vp_dev 86 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 89 drivers/virtio/virtio_pci_legacy.c iowrite8(status, vp_dev->ioaddr + VIRTIO_PCI_STATUS); vp_dev 94 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 96 drivers/virtio/virtio_pci_legacy.c iowrite8(0, vp_dev->ioaddr + VIRTIO_PCI_STATUS); vp_dev 99 drivers/virtio/virtio_pci_legacy.c ioread8(vp_dev->ioaddr + VIRTIO_PCI_STATUS); vp_dev 104 drivers/virtio/virtio_pci_legacy.c static u16 vp_config_vector(struct virtio_pci_device *vp_dev, u16 vector) vp_dev 107 drivers/virtio/virtio_pci_legacy.c iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_CONFIG_VECTOR); vp_dev 110 drivers/virtio/virtio_pci_legacy.c return ioread16(vp_dev->ioaddr + VIRTIO_MSI_CONFIG_VECTOR); vp_dev 113 drivers/virtio/virtio_pci_legacy.c static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev, vp_dev 127 drivers/virtio/virtio_pci_legacy.c iowrite16(index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_SEL); vp_dev 130 drivers/virtio/virtio_pci_legacy.c num = ioread16(vp_dev->ioaddr + VIRTIO_PCI_QUEUE_NUM); vp_dev 131 drivers/virtio/virtio_pci_legacy.c if (!num || ioread32(vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN)) vp_dev 138 drivers/virtio/virtio_pci_legacy.c VIRTIO_PCI_VRING_ALIGN, &vp_dev->vdev, vp_dev 146 drivers/virtio/virtio_pci_legacy.c dev_err(&vp_dev->pci_dev->dev, vp_dev 154 drivers/virtio/virtio_pci_legacy.c iowrite32(q_pfn, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); vp_dev 156 drivers/virtio/virtio_pci_legacy.c vq->priv = (void __force *)vp_dev->ioaddr + VIRTIO_PCI_QUEUE_NOTIFY; vp_dev 159 drivers/virtio/virtio_pci_legacy.c iowrite16(msix_vec, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); vp_dev 160 drivers/virtio/virtio_pci_legacy.c msix_vec = ioread16(vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); vp_dev 170 drivers/virtio/virtio_pci_legacy.c iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); vp_dev 179 drivers/virtio/virtio_pci_legacy.c struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); vp_dev 181 drivers/virtio/virtio_pci_legacy.c iowrite16(vq->index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_SEL); vp_dev 183 drivers/virtio/virtio_pci_legacy.c if (vp_dev->msix_enabled) { vp_dev 185 drivers/virtio/virtio_pci_legacy.c vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); vp_dev 187 drivers/virtio/virtio_pci_legacy.c ioread8(vp_dev->ioaddr + VIRTIO_PCI_ISR); vp_dev 191 drivers/virtio/virtio_pci_legacy.c iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); vp_dev 212 drivers/virtio/virtio_pci_legacy.c int virtio_pci_legacy_probe(struct virtio_pci_device *vp_dev) vp_dev 214 drivers/virtio/virtio_pci_legacy.c struct pci_dev *pci_dev = vp_dev->pci_dev; vp_dev 247 drivers/virtio/virtio_pci_legacy.c vp_dev->ioaddr = pci_iomap(pci_dev, 0, 0); vp_dev 248 drivers/virtio/virtio_pci_legacy.c if (!vp_dev->ioaddr) vp_dev 251 drivers/virtio/virtio_pci_legacy.c vp_dev->isr = vp_dev->ioaddr + VIRTIO_PCI_ISR; vp_dev 257 drivers/virtio/virtio_pci_legacy.c vp_dev->vdev.id.vendor = pci_dev->subsystem_vendor; vp_dev 258 drivers/virtio/virtio_pci_legacy.c vp_dev->vdev.id.device = pci_dev->subsystem_device; vp_dev 260 drivers/virtio/virtio_pci_legacy.c vp_dev->vdev.config = &virtio_pci_config_ops; vp_dev 262 drivers/virtio/virtio_pci_legacy.c vp_dev->config_vector = vp_config_vector; vp_dev 263 drivers/virtio/virtio_pci_legacy.c vp_dev->setup_vq = setup_vq; vp_dev 264 drivers/virtio/virtio_pci_legacy.c vp_dev->del_vq = del_vq; vp_dev 273 drivers/virtio/virtio_pci_legacy.c void virtio_pci_legacy_remove(struct virtio_pci_device *vp_dev) vp_dev 275 drivers/virtio/virtio_pci_legacy.c struct pci_dev *pci_dev = vp_dev->pci_dev; vp_dev 277 drivers/virtio/virtio_pci_legacy.c pci_iounmap(pci_dev, vp_dev->ioaddr); vp_dev 142 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 145 drivers/virtio/virtio_pci_modern.c vp_iowrite32(0, &vp_dev->common->device_feature_select); vp_dev 146 drivers/virtio/virtio_pci_modern.c features = vp_ioread32(&vp_dev->common->device_feature); vp_dev 147 drivers/virtio/virtio_pci_modern.c vp_iowrite32(1, &vp_dev->common->device_feature_select); vp_dev 148 drivers/virtio/virtio_pci_modern.c features |= ((u64)vp_ioread32(&vp_dev->common->device_feature) << 32); vp_dev 155 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 156 drivers/virtio/virtio_pci_modern.c struct pci_dev *pci_dev = vp_dev->pci_dev; vp_dev 166 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 181 drivers/virtio/virtio_pci_modern.c vp_iowrite32(0, &vp_dev->common->guest_feature_select); vp_dev 182 drivers/virtio/virtio_pci_modern.c vp_iowrite32((u32)vdev->features, &vp_dev->common->guest_feature); vp_dev 183 drivers/virtio/virtio_pci_modern.c vp_iowrite32(1, &vp_dev->common->guest_feature_select); vp_dev 184 drivers/virtio/virtio_pci_modern.c vp_iowrite32(vdev->features >> 32, &vp_dev->common->guest_feature); vp_dev 193 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 198 drivers/virtio/virtio_pci_modern.c BUG_ON(offset + len > vp_dev->device_len); vp_dev 202 drivers/virtio/virtio_pci_modern.c b = ioread8(vp_dev->device + offset); vp_dev 206 drivers/virtio/virtio_pci_modern.c w = cpu_to_le16(ioread16(vp_dev->device + offset)); vp_dev 210 drivers/virtio/virtio_pci_modern.c l = cpu_to_le32(ioread32(vp_dev->device + offset)); vp_dev 214 drivers/virtio/virtio_pci_modern.c l = cpu_to_le32(ioread32(vp_dev->device + offset)); vp_dev 216 drivers/virtio/virtio_pci_modern.c l = cpu_to_le32(ioread32(vp_dev->device + offset + sizeof l)); vp_dev 229 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 234 drivers/virtio/virtio_pci_modern.c BUG_ON(offset + len > vp_dev->device_len); vp_dev 239 drivers/virtio/virtio_pci_modern.c iowrite8(b, vp_dev->device + offset); vp_dev 243 drivers/virtio/virtio_pci_modern.c iowrite16(le16_to_cpu(w), vp_dev->device + offset); vp_dev 247 drivers/virtio/virtio_pci_modern.c iowrite32(le32_to_cpu(l), vp_dev->device + offset); vp_dev 251 drivers/virtio/virtio_pci_modern.c iowrite32(le32_to_cpu(l), vp_dev->device + offset); vp_dev 253 drivers/virtio/virtio_pci_modern.c iowrite32(le32_to_cpu(l), vp_dev->device + offset + sizeof l); vp_dev 262 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 263 drivers/virtio/virtio_pci_modern.c return vp_ioread8(&vp_dev->common->config_generation); vp_dev 269 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 270 drivers/virtio/virtio_pci_modern.c return vp_ioread8(&vp_dev->common->device_status); vp_dev 275 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 278 drivers/virtio/virtio_pci_modern.c vp_iowrite8(status, &vp_dev->common->device_status); vp_dev 283 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 285 drivers/virtio/virtio_pci_modern.c vp_iowrite8(0, &vp_dev->common->device_status); vp_dev 291 drivers/virtio/virtio_pci_modern.c while (vp_ioread8(&vp_dev->common->device_status)) vp_dev 297 drivers/virtio/virtio_pci_modern.c static u16 vp_config_vector(struct virtio_pci_device *vp_dev, u16 vector) vp_dev 300 drivers/virtio/virtio_pci_modern.c vp_iowrite16(vector, &vp_dev->common->msix_config); vp_dev 303 drivers/virtio/virtio_pci_modern.c return vp_ioread16(&vp_dev->common->msix_config); vp_dev 306 drivers/virtio/virtio_pci_modern.c static struct virtqueue *setup_vq(struct virtio_pci_device *vp_dev, vp_dev 314 drivers/virtio/virtio_pci_modern.c struct virtio_pci_common_cfg __iomem *cfg = vp_dev->common; vp_dev 331 drivers/virtio/virtio_pci_modern.c dev_warn(&vp_dev->pci_dev->dev, "bad queue size %u", num); vp_dev 342 drivers/virtio/virtio_pci_modern.c SMP_CACHE_BYTES, &vp_dev->vdev, vp_dev 357 drivers/virtio/virtio_pci_modern.c if (vp_dev->notify_base) { vp_dev 359 drivers/virtio/virtio_pci_modern.c if ((u64)off * vp_dev->notify_offset_multiplier + 2 vp_dev 360 drivers/virtio/virtio_pci_modern.c > vp_dev->notify_len) { vp_dev 361 drivers/virtio/virtio_pci_modern.c dev_warn(&vp_dev->pci_dev->dev, vp_dev 364 drivers/virtio/virtio_pci_modern.c off, vp_dev->notify_offset_multiplier, vp_dev 365 drivers/virtio/virtio_pci_modern.c index, vp_dev->notify_len); vp_dev 369 drivers/virtio/virtio_pci_modern.c vq->priv = (void __force *)vp_dev->notify_base + vp_dev 370 drivers/virtio/virtio_pci_modern.c off * vp_dev->notify_offset_multiplier; vp_dev 372 drivers/virtio/virtio_pci_modern.c vq->priv = (void __force *)map_capability(vp_dev->pci_dev, vp_dev 373 drivers/virtio/virtio_pci_modern.c vp_dev->notify_map_cap, 2, 2, vp_dev 374 drivers/virtio/virtio_pci_modern.c off * vp_dev->notify_offset_multiplier, 2, vp_dev 395 drivers/virtio/virtio_pci_modern.c if (!vp_dev->notify_base) vp_dev 396 drivers/virtio/virtio_pci_modern.c pci_iounmap(vp_dev->pci_dev, (void __iomem __force *)vq->priv); vp_dev 408 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vdev); vp_dev 419 drivers/virtio/virtio_pci_modern.c vp_iowrite16(vq->index, &vp_dev->common->queue_select); vp_dev 420 drivers/virtio/virtio_pci_modern.c vp_iowrite16(1, &vp_dev->common->queue_enable); vp_dev 429 drivers/virtio/virtio_pci_modern.c struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); vp_dev 431 drivers/virtio/virtio_pci_modern.c vp_iowrite16(vq->index, &vp_dev->common->queue_select); vp_dev 433 drivers/virtio/virtio_pci_modern.c if (vp_dev->msix_enabled) { vp_dev 435 drivers/virtio/virtio_pci_modern.c &vp_dev->common->queue_msix_vector); vp_dev 437 drivers/virtio/virtio_pci_modern.c vp_ioread16(&vp_dev->common->queue_msix_vector); vp_dev 440 drivers/virtio/virtio_pci_modern.c if (!vp_dev->notify_base) vp_dev 441 drivers/virtio/virtio_pci_modern.c pci_iounmap(vp_dev->pci_dev, (void __force __iomem *)vq->priv); vp_dev 581 drivers/virtio/virtio_pci_modern.c int virtio_pci_modern_probe(struct virtio_pci_device *vp_dev) vp_dev 583 drivers/virtio/virtio_pci_modern.c struct pci_dev *pci_dev = vp_dev->pci_dev; vp_dev 598 drivers/virtio/virtio_pci_modern.c vp_dev->vdev.id.device = pci_dev->subsystem_device; vp_dev 601 drivers/virtio/virtio_pci_modern.c vp_dev->vdev.id.device = pci_dev->device - 0x1040; vp_dev 603 drivers/virtio/virtio_pci_modern.c vp_dev->vdev.id.vendor = pci_dev->subsystem_vendor; vp_dev 608 drivers/virtio/virtio_pci_modern.c &vp_dev->modern_bars); vp_dev 618 drivers/virtio/virtio_pci_modern.c &vp_dev->modern_bars); vp_dev 621 drivers/virtio/virtio_pci_modern.c &vp_dev->modern_bars); vp_dev 641 drivers/virtio/virtio_pci_modern.c &vp_dev->modern_bars); vp_dev 643 drivers/virtio/virtio_pci_modern.c err = pci_request_selected_regions(pci_dev, vp_dev->modern_bars, vp_dev 649 drivers/virtio/virtio_pci_modern.c vp_dev->common = map_capability(pci_dev, common, vp_dev 653 drivers/virtio/virtio_pci_modern.c if (!vp_dev->common) vp_dev 655 drivers/virtio/virtio_pci_modern.c vp_dev->isr = map_capability(pci_dev, isr, sizeof(u8), 1, vp_dev 658 drivers/virtio/virtio_pci_modern.c if (!vp_dev->isr) vp_dev 665 drivers/virtio/virtio_pci_modern.c &vp_dev->notify_offset_multiplier); vp_dev 682 drivers/virtio/virtio_pci_modern.c vp_dev->notify_base = map_capability(pci_dev, notify, 2, 2, vp_dev 684 drivers/virtio/virtio_pci_modern.c &vp_dev->notify_len); vp_dev 685 drivers/virtio/virtio_pci_modern.c if (!vp_dev->notify_base) vp_dev 688 drivers/virtio/virtio_pci_modern.c vp_dev->notify_map_cap = notify; vp_dev 695 drivers/virtio/virtio_pci_modern.c vp_dev->device = map_capability(pci_dev, device, 0, 4, vp_dev 697 drivers/virtio/virtio_pci_modern.c &vp_dev->device_len); vp_dev 698 drivers/virtio/virtio_pci_modern.c if (!vp_dev->device) vp_dev 701 drivers/virtio/virtio_pci_modern.c vp_dev->vdev.config = &virtio_pci_config_ops; vp_dev 703 drivers/virtio/virtio_pci_modern.c vp_dev->vdev.config = &virtio_pci_config_nodev_ops; vp_dev 706 drivers/virtio/virtio_pci_modern.c vp_dev->config_vector = vp_config_vector; vp_dev 707 drivers/virtio/virtio_pci_modern.c vp_dev->setup_vq = setup_vq; vp_dev 708 drivers/virtio/virtio_pci_modern.c vp_dev->del_vq = del_vq; vp_dev 713 drivers/virtio/virtio_pci_modern.c if (vp_dev->notify_base) vp_dev 714 drivers/virtio/virtio_pci_modern.c pci_iounmap(pci_dev, vp_dev->notify_base); vp_dev 716 drivers/virtio/virtio_pci_modern.c pci_iounmap(pci_dev, vp_dev->isr); vp_dev 718 drivers/virtio/virtio_pci_modern.c pci_iounmap(pci_dev, vp_dev->common); vp_dev 723 drivers/virtio/virtio_pci_modern.c void virtio_pci_modern_remove(struct virtio_pci_device *vp_dev) vp_dev 725 drivers/virtio/virtio_pci_modern.c struct pci_dev *pci_dev = vp_dev->pci_dev; vp_dev 727 drivers/virtio/virtio_pci_modern.c if (vp_dev->device) vp_dev 728 drivers/virtio/virtio_pci_modern.c pci_iounmap(pci_dev, vp_dev->device); vp_dev 729 drivers/virtio/virtio_pci_modern.c if (vp_dev->notify_base) vp_dev 730 drivers/virtio/virtio_pci_modern.c pci_iounmap(pci_dev, vp_dev->notify_base); vp_dev 731 drivers/virtio/virtio_pci_modern.c pci_iounmap(pci_dev, vp_dev->isr); vp_dev 732 drivers/virtio/virtio_pci_modern.c pci_iounmap(pci_dev, vp_dev->common); vp_dev 733 drivers/virtio/virtio_pci_modern.c pci_release_selected_regions(pci_dev, vp_dev->modern_bars);