• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/virtio/

Lines Matching defs:vp_dev

108 	struct virtio_pci_device *vp_dev = to_vp_device(vdev);
112 return ioread32(vp_dev->ioaddr + VIRTIO_PCI_HOST_FEATURES);
118 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
125 iowrite32(vdev->features[0], vp_dev->ioaddr+VIRTIO_PCI_GUEST_FEATURES);
132 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
133 void __iomem *ioaddr = vp_dev->ioaddr +
134 VIRTIO_PCI_CONFIG(vp_dev) + offset;
147 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
148 void __iomem *ioaddr = vp_dev->ioaddr +
149 VIRTIO_PCI_CONFIG(vp_dev) + offset;
160 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
161 return ioread8(vp_dev->ioaddr + VIRTIO_PCI_STATUS);
166 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
169 iowrite8(status, vp_dev->ioaddr + VIRTIO_PCI_STATUS);
174 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
176 iowrite8(0, vp_dev->ioaddr + VIRTIO_PCI_STATUS);
182 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev);
187 iowrite16(info->queue_index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_NOTIFY);
193 struct virtio_pci_device *vp_dev = opaque;
195 drv = container_of(vp_dev->vdev.dev.driver,
199 drv->config_changed(&vp_dev->vdev);
206 struct virtio_pci_device *vp_dev = opaque;
211 spin_lock_irqsave(&vp_dev->lock, flags);
212 list_for_each_entry(info, &vp_dev->virtqueues, node) {
216 spin_unlock_irqrestore(&vp_dev->lock, flags);
229 struct virtio_pci_device *vp_dev = opaque;
234 isr = ioread8(vp_dev->ioaddr + VIRTIO_PCI_ISR);
249 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
252 if (vp_dev->intx_enabled) {
253 free_irq(vp_dev->pci_dev->irq, vp_dev);
254 vp_dev->intx_enabled = 0;
257 for (i = 0; i < vp_dev->msix_used_vectors; ++i)
258 free_irq(vp_dev->msix_entries[i].vector, vp_dev);
260 if (vp_dev->msix_enabled) {
263 vp_dev->ioaddr + VIRTIO_MSI_CONFIG_VECTOR);
265 ioread16(vp_dev->ioaddr + VIRTIO_MSI_CONFIG_VECTOR);
267 pci_disable_msix(vp_dev->pci_dev);
268 vp_dev->msix_enabled = 0;
269 vp_dev->msix_vectors = 0;
272 vp_dev->msix_used_vectors = 0;
273 kfree(vp_dev->msix_names);
274 vp_dev->msix_names = NULL;
275 kfree(vp_dev->msix_entries);
276 vp_dev->msix_entries = NULL;
282 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
283 const char *name = dev_name(&vp_dev->vdev.dev);
287 vp_dev->msix_entries = kmalloc(nvectors * sizeof *vp_dev->msix_entries,
289 if (!vp_dev->msix_entries)
291 vp_dev->msix_names = kmalloc(nvectors * sizeof *vp_dev->msix_names,
293 if (!vp_dev->msix_names)
297 vp_dev->msix_entries[i].entry = i;
300 err = pci_enable_msix(vp_dev->pci_dev, vp_dev->msix_entries, nvectors);
305 vp_dev->msix_vectors = nvectors;
306 vp_dev->msix_enabled = 1;
309 v = vp_dev->msix_used_vectors;
310 snprintf(vp_dev->msix_names[v], sizeof *vp_dev->msix_names,
312 err = request_irq(vp_dev->msix_entries[v].vector,
313 vp_config_changed, 0, vp_dev->msix_names[v],
314 vp_dev);
317 ++vp_dev->msix_used_vectors;
319 iowrite16(v, vp_dev->ioaddr + VIRTIO_MSI_CONFIG_VECTOR);
321 v = ioread16(vp_dev->ioaddr + VIRTIO_MSI_CONFIG_VECTOR);
329 v = vp_dev->msix_used_vectors;
330 snprintf(vp_dev->msix_names[v], sizeof *vp_dev->msix_names,
332 err = request_irq(vp_dev->msix_entries[v].vector,
333 vp_vring_interrupt, 0, vp_dev->msix_names[v],
334 vp_dev);
337 ++vp_dev->msix_used_vectors;
348 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
350 err = request_irq(vp_dev->pci_dev->irq, vp_interrupt,
351 IRQF_SHARED, dev_name(&vdev->dev), vp_dev);
353 vp_dev->intx_enabled = 1;
362 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
370 iowrite16(index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_SEL);
373 num = ioread16(vp_dev->ioaddr + VIRTIO_PCI_QUEUE_NUM);
374 if (!num || ioread32(vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN))
396 vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN);
410 iowrite16(msix_vec, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR);
411 msix_vec = ioread16(vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR);
418 spin_lock_irqsave(&vp_dev->lock, flags);
419 list_add(&info->node, &vp_dev->virtqueues);
420 spin_unlock_irqrestore(&vp_dev->lock, flags);
427 iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN);
436 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev);
440 spin_lock_irqsave(&vp_dev->lock, flags);
442 spin_unlock_irqrestore(&vp_dev->lock, flags);
444 iowrite16(info->queue_index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_SEL);
446 if (vp_dev->msix_enabled) {
448 vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR);
450 ioread8(vp_dev->ioaddr + VIRTIO_PCI_ISR);
456 iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN);
466 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
472 if (vp_dev->per_vq_vectors &&
474 free_irq(vp_dev->msix_entries[info->msix_vector].vector,
478 vp_dev->per_vq_vectors = false;
490 struct virtio_pci_device *vp_dev = to_vp_device(vdev);
516 vp_dev->per_vq_vectors = per_vq_vectors;
517 allocated_vectors = vp_dev->msix_used_vectors;
519 if (!callbacks[i] || !vp_dev->msix_enabled)
521 else if (vp_dev->per_vq_vectors)
531 if (!vp_dev->per_vq_vectors || msix_vec == VIRTIO_MSI_NO_VECTOR)
535 snprintf(vp_dev->msix_names[msix_vec],
536 sizeof *vp_dev->msix_names,
538 dev_name(&vp_dev->vdev.dev), names[i]);
539 err = request_irq(vp_dev->msix_entries[msix_vec].vector,
541 vp_dev->msix_names[msix_vec],
594 struct virtio_pci_device *vp_dev = to_vp_device(dev);
595 struct pci_dev *pci_dev = vp_dev->pci_dev;
599 pci_iounmap(pci_dev, vp_dev->ioaddr);
602 kfree(vp_dev);
609 struct virtio_pci_device *vp_dev;
623 vp_dev = kzalloc(sizeof(struct virtio_pci_device), GFP_KERNEL);
624 if (vp_dev == NULL)
627 vp_dev->vdev.dev.parent = &pci_dev->dev;
628 vp_dev->vdev.dev.release = virtio_pci_release_dev;
629 vp_dev->vdev.config = &virtio_pci_config_ops;
630 vp_dev->pci_dev = pci_dev;
631 INIT_LIST_HEAD(&vp_dev->virtqueues);
632 spin_lock_init(&vp_dev->lock);
646 vp_dev->ioaddr = pci_iomap(pci_dev, 0, 0);
647 if (vp_dev->ioaddr == NULL)
650 pci_set_drvdata(pci_dev, vp_dev);
657 vp_dev->vdev.id.vendor = pci_dev->subsystem_vendor;
658 vp_dev->vdev.id.device = pci_dev->subsystem_device;
661 err = register_virtio_device(&vp_dev->vdev);
669 pci_iounmap(pci_dev, vp_dev->ioaddr);
675 kfree(vp_dev);
681 struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev);
683 unregister_virtio_device(&vp_dev->vdev);