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

Commit 158a71f8 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'msi-3.12' of git://git.infradead.org/linux-mvebu into next/drivers

From Jason Cooper:
mvebu msi pci changes for v3.12

 - introduce support for MSI on PCI
 - fix s390 build breakage when !HAVE_GENERIC_HARDIRQS

NOTE: This branch is a dependency for changes going though arm-soc from both
Thomas Petazzoni and Thierry Reding.

* tag 'msi-3.12' of git://git.infradead.org/linux-mvebu

:
  PCI: msi: add default MSI operations for !HAVE_GENERIC_HARDIRQS platforms
  ARM: pci: add ->add_bus() and ->remove_bus() hooks to hw_pci
  of: pci: add registry of MSI chips
  PCI: Introduce new MSI chip infrastructure
  PCI: remove ARCH_SUPPORTS_MSI kconfig option
  PCI: use weak functions for MSI arch-specific functions

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents aaf75e45 6a4324eb
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -441,7 +441,6 @@ config ARCH_NETX
config ARCH_IOP13XX
config ARCH_IOP13XX
	bool "IOP13xx-based"
	bool "IOP13xx-based"
	depends on MMU
	depends on MMU
	select ARCH_SUPPORTS_MSI
	select CPU_XSC3
	select CPU_XSC3
	select NEED_MACH_MEMORY_H
	select NEED_MACH_MEMORY_H
	select NEED_RET_TO_USER
	select NEED_RET_TO_USER
+4 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,8 @@ struct hw_pci {
					  resource_size_t start,
					  resource_size_t start,
					  resource_size_t size,
					  resource_size_t size,
					  resource_size_t align);
					  resource_size_t align);
	void		(*add_bus)(struct pci_bus *bus);
	void		(*remove_bus)(struct pci_bus *bus);
};
};


/*
/*
@@ -63,6 +65,8 @@ struct pci_sys_data {
					  resource_size_t start,
					  resource_size_t start,
					  resource_size_t size,
					  resource_size_t size,
					  resource_size_t align);
					  resource_size_t align);
	void		(*add_bus)(struct pci_bus *bus);
	void		(*remove_bus)(struct pci_bus *bus);
	void		*private_data;	/* platform controller private data	*/
	void		*private_data;	/* platform controller private data	*/
};
};


+16 −0
Original line number Original line Diff line number Diff line
@@ -363,6 +363,20 @@ void pcibios_fixup_bus(struct pci_bus *bus)
}
}
EXPORT_SYMBOL(pcibios_fixup_bus);
EXPORT_SYMBOL(pcibios_fixup_bus);


void pcibios_add_bus(struct pci_bus *bus)
{
	struct pci_sys_data *sys = bus->sysdata;
	if (sys->add_bus)
		sys->add_bus(bus);
}

void pcibios_remove_bus(struct pci_bus *bus)
{
	struct pci_sys_data *sys = bus->sysdata;
	if (sys->remove_bus)
		sys->remove_bus(bus);
}

/*
/*
 * Swizzle the device pin each time we cross a bridge.  If a platform does
 * Swizzle the device pin each time we cross a bridge.  If a platform does
 * not provide a swizzle function, we perform the standard PCI swizzling.
 * not provide a swizzle function, we perform the standard PCI swizzling.
@@ -464,6 +478,8 @@ static void pcibios_init_hw(struct device *parent, struct hw_pci *hw,
		sys->swizzle = hw->swizzle;
		sys->swizzle = hw->swizzle;
		sys->map_irq = hw->map_irq;
		sys->map_irq = hw->map_irq;
		sys->align_resource = hw->align_resource;
		sys->align_resource = hw->align_resource;
		sys->add_bus = hw->add_bus;
		sys->remove_bus = hw->remove_bus;
		INIT_LIST_HEAD(&sys->resources);
		INIT_LIST_HEAD(&sys->resources);


		if (hw->private_data)
		if (hw->private_data)
+0 −1
Original line number Original line Diff line number Diff line
@@ -9,7 +9,6 @@ config IA64
	select PCI if (!IA64_HP_SIM)
	select PCI if (!IA64_HP_SIM)
	select ACPI if (!IA64_HP_SIM)
	select ACPI if (!IA64_HP_SIM)
	select PM if (!IA64_HP_SIM)
	select PM if (!IA64_HP_SIM)
	select ARCH_SUPPORTS_MSI
	select HAVE_UNSTABLE_SCHED_CLOCK
	select HAVE_UNSTABLE_SCHED_CLOCK
	select HAVE_IDE
	select HAVE_IDE
	select HAVE_OPROFILE
	select HAVE_OPROFILE
+0 −2
Original line number Original line Diff line number Diff line
@@ -727,7 +727,6 @@ config CAVIUM_OCTEON_SOC
	select SYS_HAS_CPU_CAVIUM_OCTEON
	select SYS_HAS_CPU_CAVIUM_OCTEON
	select SWAP_IO_SPACE
	select SWAP_IO_SPACE
	select HW_HAS_PCI
	select HW_HAS_PCI
	select ARCH_SUPPORTS_MSI
	select ZONE_DMA32
	select ZONE_DMA32
	select USB_ARCH_HAS_OHCI
	select USB_ARCH_HAS_OHCI
	select USB_ARCH_HAS_EHCI
	select USB_ARCH_HAS_EHCI
@@ -763,7 +762,6 @@ config NLM_XLR_BOARD
	select CEVT_R4K
	select CEVT_R4K
	select CSRC_R4K
	select CSRC_R4K
	select IRQ_CPU
	select IRQ_CPU
	select ARCH_SUPPORTS_MSI
	select ZONE_DMA32 if 64BIT
	select ZONE_DMA32 if 64BIT
	select SYNC_R4K
	select SYNC_R4K
	select SYS_HAS_EARLY_PRINTK
	select SYS_HAS_EARLY_PRINTK
Loading