Searched refs:vmci_dev (Results 1 - 1 of 1) sorted by relevance

/linux-4.1.27/drivers/misc/vmw_vmci/
H A Dvmci_guest.c70 /* vmci_dev singleton device and supporting data*/
214 struct vmci_guest_device *vmci_dev = (struct vmci_guest_device *)data; vmci_dispatch_dgs() local
215 u8 *dg_in_buffer = vmci_dev->data_buffer; vmci_dispatch_dgs()
223 ioread8_rep(vmci_dev->iobase + VMCI_DATA_IN_ADDR, vmci_dispatch_dgs()
224 vmci_dev->data_buffer, current_dg_in_buffer_size); vmci_dispatch_dgs()
284 ioread8_rep(vmci_dev->iobase + vmci_dispatch_dgs()
286 vmci_dev->data_buffer + vmci_dispatch_dgs()
303 dev_dbg(vmci_dev->dev, vmci_dispatch_dgs()
317 dev_dbg(vmci_dev->dev, vmci_dispatch_dgs()
326 ioread8_rep(vmci_dev->iobase + vmci_dispatch_dgs()
328 vmci_dev->data_buffer, vmci_dispatch_dgs()
346 ioread8_rep(vmci_dev->iobase + VMCI_DATA_IN_ADDR, vmci_dispatch_dgs()
347 vmci_dev->data_buffer, vmci_dispatch_dgs()
375 struct vmci_guest_device *vmci_dev) vmci_enable_msix()
381 vmci_dev->msix_entries[i].entry = i; vmci_enable_msix()
382 vmci_dev->msix_entries[i].vector = i; vmci_enable_msix()
386 vmci_dev->msix_entries, VMCI_MAX_INTRS); vmci_enable_msix()
388 vmci_dev->exclusive_vectors = true; vmci_enable_msix()
390 result = pci_enable_msix_exact(pdev, vmci_dev->msix_entries, 1); vmci_enable_msix()
459 struct vmci_guest_device *vmci_dev; vmci_guest_probe_device() local
486 vmci_dev = devm_kzalloc(&pdev->dev, sizeof(*vmci_dev), GFP_KERNEL); vmci_guest_probe_device()
487 if (!vmci_dev) { vmci_guest_probe_device()
493 vmci_dev->dev = &pdev->dev; vmci_guest_probe_device()
494 vmci_dev->intr_type = VMCI_INTR_TYPE_INTX; vmci_guest_probe_device()
495 vmci_dev->exclusive_vectors = false; vmci_guest_probe_device()
496 vmci_dev->iobase = iobase; vmci_guest_probe_device()
498 tasklet_init(&vmci_dev->datagram_tasklet, vmci_guest_probe_device()
499 vmci_dispatch_dgs, (unsigned long)vmci_dev); vmci_guest_probe_device()
500 tasklet_init(&vmci_dev->bm_tasklet, vmci_guest_probe_device()
501 vmci_process_bitmap, (unsigned long)vmci_dev); vmci_guest_probe_device()
503 vmci_dev->data_buffer = vmalloc(VMCI_MAX_DG_SIZE); vmci_guest_probe_device()
504 if (!vmci_dev->data_buffer) { vmci_guest_probe_device()
521 capabilities = ioread32(vmci_dev->iobase + VMCI_CAPS_ADDR); vmci_guest_probe_device()
533 vmci_dev->notification_bitmap = dma_alloc_coherent( vmci_guest_probe_device()
534 &pdev->dev, PAGE_SIZE, &vmci_dev->notification_base, vmci_guest_probe_device()
536 if (!vmci_dev->notification_bitmap) { vmci_guest_probe_device()
540 memset(vmci_dev->notification_bitmap, 0, PAGE_SIZE); vmci_guest_probe_device()
548 iowrite32(capabilities, vmci_dev->iobase + VMCI_CAPS_ADDR); vmci_guest_probe_device()
552 vmci_dev_g = vmci_dev; vmci_guest_probe_device()
562 vmci_dev->notification_base >> PAGE_SHIFT; vmci_guest_probe_device()
595 if (!vmci_disable_msix && !vmci_enable_msix(pdev, vmci_dev)) { vmci_guest_probe_device()
596 vmci_dev->intr_type = VMCI_INTR_TYPE_MSIX; vmci_guest_probe_device()
597 vmci_dev->irq = vmci_dev->msix_entries[0].vector; vmci_guest_probe_device()
599 vmci_dev->intr_type = VMCI_INTR_TYPE_MSI; vmci_guest_probe_device()
600 vmci_dev->irq = pdev->irq; vmci_guest_probe_device()
602 vmci_dev->intr_type = VMCI_INTR_TYPE_INTX; vmci_guest_probe_device()
603 vmci_dev->irq = pdev->irq; vmci_guest_probe_device()
610 error = request_irq(vmci_dev->irq, vmci_interrupt, IRQF_SHARED, vmci_guest_probe_device()
611 KBUILD_MODNAME, vmci_dev); vmci_guest_probe_device()
614 vmci_dev->irq, error); vmci_guest_probe_device()
624 if (vmci_dev->exclusive_vectors) { vmci_guest_probe_device()
625 error = request_irq(vmci_dev->msix_entries[1].vector, vmci_guest_probe_device()
627 vmci_dev); vmci_guest_probe_device()
631 vmci_dev->msix_entries[1].vector, error); vmci_guest_probe_device()
644 iowrite32(cmd, vmci_dev->iobase + VMCI_IMR_ADDR); vmci_guest_probe_device()
648 vmci_dev->iobase + VMCI_CONTROL_ADDR); vmci_guest_probe_device()
650 pci_set_drvdata(pdev, vmci_dev); vmci_guest_probe_device()
654 free_irq(vmci_dev->irq, vmci_dev); vmci_guest_probe_device()
655 tasklet_kill(&vmci_dev->datagram_tasklet); vmci_guest_probe_device()
656 tasklet_kill(&vmci_dev->bm_tasklet); vmci_guest_probe_device()
659 if (vmci_dev->intr_type == VMCI_INTR_TYPE_MSIX) vmci_guest_probe_device()
661 else if (vmci_dev->intr_type == VMCI_INTR_TYPE_MSI) vmci_guest_probe_device()
671 if (vmci_dev->notification_bitmap) { vmci_guest_probe_device()
673 vmci_dev->iobase + VMCI_CONTROL_ADDR); vmci_guest_probe_device()
675 vmci_dev->notification_bitmap, vmci_guest_probe_device()
676 vmci_dev->notification_base); vmci_guest_probe_device()
686 vfree(vmci_dev->data_buffer); vmci_guest_probe_device()
694 struct vmci_guest_device *vmci_dev = pci_get_drvdata(pdev); vmci_guest_remove_device() local
715 iowrite32(VMCI_CONTROL_RESET, vmci_dev->iobase + VMCI_CONTROL_ADDR); vmci_guest_remove_device()
722 free_irq(vmci_dev->irq, vmci_dev); vmci_guest_remove_device()
723 if (vmci_dev->intr_type == VMCI_INTR_TYPE_MSIX) { vmci_guest_remove_device()
724 if (vmci_dev->exclusive_vectors) vmci_guest_remove_device()
725 free_irq(vmci_dev->msix_entries[1].vector, vmci_dev); vmci_guest_remove_device()
727 } else if (vmci_dev->intr_type == VMCI_INTR_TYPE_MSI) { vmci_guest_remove_device()
731 tasklet_kill(&vmci_dev->datagram_tasklet); vmci_guest_remove_device()
732 tasklet_kill(&vmci_dev->bm_tasklet); vmci_guest_remove_device()
734 if (vmci_dev->notification_bitmap) { vmci_guest_remove_device()
741 vmci_dev->notification_bitmap, vmci_guest_remove_device()
742 vmci_dev->notification_base); vmci_guest_remove_device()
745 vfree(vmci_dev->data_buffer); vmci_guest_remove_device()
374 vmci_enable_msix(struct pci_dev *pdev, struct vmci_guest_device *vmci_dev) vmci_enable_msix() argument

Completed in 99 milliseconds