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

Commit 3a6384ba authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'pci/host-vmd' into next

* pci/host-vmd:
  x86/PCI: Add driver for Intel Volume Management Device (VMD)
  PCI/AER: Use 32 bit PCI domain numbers
  x86/PCI: Allow DMA ops specific to a PCI domain
  irqdomain: Export irq_domain_set_info() for module use
  genirq/MSI: Relax msi_domain_alloc() to support parentless MSI irqdomains
parents 47235841 185a383a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -8216,6 +8216,12 @@ S: Maintained
F:	Documentation/devicetree/bindings/pci/host-generic-pci.txt
F:	drivers/pci/host/pci-host-generic.c

PCI DRIVER FOR INTEL VOLUME MANAGEMENT DEVICE (VMD)
M:	Keith Busch <keith.busch@intel.com>
L:	linux-pci@vger.kernel.org
S:	Supported
F:	arch/x86/pci/vmd.c

PCIE DRIVER FOR ST SPEAR13XX
M:	Pratyush Anand <pratyush.anand@gmail.com>
L:	linux-pci@vger.kernel.org
+13 −0
Original line number Diff line number Diff line
@@ -2665,6 +2665,19 @@ config PMC_ATOM
	def_bool y
        depends on PCI

config VMD
	depends on PCI_MSI
	tristate "Volume Management Device Driver"
	default N
	---help---
	  Adds support for the Intel Volume Management Device (VMD). VMD is a
	  secondary PCI host bridge that allows PCI Express root ports,
	  and devices attached to them, to be removed from the default
	  PCI domain and placed within the VMD domain. This provides
	  more bus resources than are otherwise possible with a
	  single domain. If you know your system provides one of these and
	  has devices attached to it, say Y; if you are not sure, say N.

source "net/Kconfig"

source "drivers/Kconfig"
+10 −0
Original line number Diff line number Diff line
@@ -10,6 +10,16 @@ struct dev_archdata {
#endif
};

#if defined(CONFIG_X86_DEV_DMA_OPS) && defined(CONFIG_PCI_DOMAINS)
struct dma_domain {
	struct list_head node;
	struct dma_map_ops *dma_ops;
	int domain_nr;
};
void add_dma_domain(struct dma_domain *domain);
void del_dma_domain(struct dma_domain *domain);
#endif

struct pdev_archdata {
};

+5 −0
Original line number Diff line number Diff line
@@ -129,6 +129,11 @@ struct irq_alloc_info {
			unsigned long	uv_offset;
			char		*uv_name;
		};
#endif
#if IS_ENABLED(CONFIG_VMD)
		struct {
			struct msi_desc *desc;
		};
#endif
	};
};
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ obj-y += bus_numa.o
obj-$(CONFIG_AMD_NB)		+= amd_bus.o
obj-$(CONFIG_PCI_CNB20LE_QUIRK)	+= broadcom_bus.o

obj-$(CONFIG_VMD) += vmd.o

ifeq ($(CONFIG_PCI_DEBUG),y)
EXTRA_CFLAGS += -DDEBUG
endif
Loading