aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/xen')
-rw-r--r--drivers/xen/events.c41
1 files changed, 0 insertions, 41 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index 34469489087b..6befe6227159 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -644,9 +644,6 @@ out:
644} 644}
645 645
646#ifdef CONFIG_PCI_MSI 646#ifdef CONFIG_PCI_MSI
647#include <linux/msi.h>
648#include "../pci/msi.h"
649
650int xen_allocate_pirq_msi(struct pci_dev *dev, struct msi_desc *msidesc) 647int xen_allocate_pirq_msi(struct pci_dev *dev, struct msi_desc *msidesc)
651{ 648{
652 int rc; 649 int rc;
@@ -688,44 +685,6 @@ error_irq:
688 xen_free_irq(irq); 685 xen_free_irq(irq);
689 return -1; 686 return -1;
690} 687}
691
692int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type)
693{
694 struct physdev_map_pirq map_irq;
695 int rc;
696 int pos;
697 u32 table_offset, bir;
698
699 memset(&map_irq, 0, sizeof(map_irq));
700 map_irq.domid = DOMID_SELF;
701 map_irq.type = MAP_PIRQ_TYPE_MSI;
702 map_irq.index = -1;
703 map_irq.pirq = -1;
704 map_irq.bus = dev->bus->number;
705 map_irq.devfn = dev->devfn;
706
707 if (type == PCI_CAP_ID_MSIX) {
708 pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
709
710 pci_read_config_dword(dev, msix_table_offset_reg(pos),
711 &table_offset);
712 bir = (u8)(table_offset & PCI_MSIX_FLAGS_BIRMASK);
713
714 map_irq.table_base = pci_resource_start(dev, bir);
715 map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
716 }
717
718 rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
719 if (rc) {
720 dev_warn(&dev->dev, "xen map irq failed %d\n", rc);
721 return -1;
722 }
723
724 return xen_bind_pirq_msi_to_irq(dev, msidesc,
725 map_irq.pirq, map_irq.index,
726 (type == PCI_CAP_ID_MSIX) ?
727 "msi-x" : "msi");
728}
729#endif 688#endif
730 689
731int xen_destroy_irq(int irq) 690int xen_destroy_irq(int irq)