Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfeb8139 authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'pci/host-hv' into next

* pci/host-hv:
  PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs
  PCI: Look up IRQ domain by fwnode_handle
  PCI: Add fwnode_handle to x86 pci_sysdata
parents 562df5c8 4daace0d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5193,6 +5193,7 @@ F: arch/x86/kernel/cpu/mshyperv.c
F:	drivers/hid/hid-hyperv.c
F:	drivers/hv/
F:	drivers/input/serio/hyperv-keyboard.c
F:	drivers/pci/host/pci-hyperv.c
F:	drivers/net/hyperv/
F:	drivers/scsi/storvsc_drv.c
F:	drivers/video/fbdev/hyperv_fb.c
+15 −0
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ struct pci_sysdata {
#ifdef CONFIG_X86_64
	void		*iommu;		/* IOMMU private data */
#endif
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
	void		*fwnode;	/* IRQ domain for MSI assignment */
#endif
};

extern int pci_routeirq;
@@ -32,6 +35,7 @@ extern int noioapicreroute;
static inline int pci_domain_nr(struct pci_bus *bus)
{
	struct pci_sysdata *sd = bus->sysdata;

	return sd->domain;
}

@@ -41,6 +45,17 @@ static inline int pci_proc_domain(struct pci_bus *bus)
}
#endif

#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
{
	struct pci_sysdata *sd = bus->sysdata;

	return sd->fwnode;
}

#define pci_root_bus_fwnode	_pci_root_bus_fwnode
#endif

/* Can be used to override the logic in pci_scan_bus for skipping
   already-configured bus numbers - to be used for buggy BIOSes
   or architectures with incomplete PCI setup by the loader */
+7 −1
Original line number Diff line number Diff line
@@ -121,5 +121,11 @@ config PCI_LABEL
	def_bool y if (DMI || ACPI)
	select NLS

source "drivers/pci/hotplug/Kconfig"
config PCI_HYPERV
        tristate "Hyper-V PCI Frontend"
        depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
        help
          The PCI device frontend driver allows the kernel to import arbitrary
          PCI devices from a PCI backend to support PCI driver domains.

source "drivers/pci/host/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ obj-$(CONFIG_PCIE_DW_PLAT) += pcie-designware-plat.o
obj-$(CONFIG_PCI_DRA7XX) += pci-dra7xx.o
obj-$(CONFIG_PCI_EXYNOS) += pci-exynos.o
obj-$(CONFIG_PCI_IMX6) += pci-imx6.o
obj-$(CONFIG_PCI_HYPERV) += pci-hyperv.o
obj-$(CONFIG_PCI_MVEBU) += pci-mvebu.o
obj-$(CONFIG_PCI_TEGRA) += pci-tegra.o
obj-$(CONFIG_PCI_RCAR_GEN2) += pci-rcar-gen2.o
+2346 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading