linux/arch/powerpc/platforms/pseries
Alexey Kardashevskiy d905c5df9a PPC: POWERNV: move iommu_add_device earlier
The current implementation of IOMMU on sPAPR does not use iommu_ops
and therefore does not call IOMMU API's bus_set_iommu() which
1) sets iommu_ops for a bus
2) registers a bus notifier
Instead, PCI devices are added to IOMMU groups from
subsys_initcall_sync(tce_iommu_init) which does basically the same
thing without using iommu_ops callbacks.

However Freescale PAMU driver (https://lkml.org/lkml/2013/7/1/158)
implements iommu_ops and when tce_iommu_init is called, every PCI device
is already added to some group so there is a conflict.

This patch does 2 things:
1. removes the loop in which PCI devices were added to groups and
adds explicit iommu_add_device() calls to add devices as soon as they get
the iommu_table pointer assigned to them.
2. moves a bus notifier to powernv code in order to avoid conflict with
the notifier from Freescale driver.

iommu_add_device() and iommu_del_device() are public now.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-12-05 16:08:17 +11:00
..
cmm.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
dlpar.c hotplug, powerpc, x86: Remove cpu_hotplug_driver_lock() 2013-09-30 19:55:51 +02:00
dtl.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
eeh_pseries.c powerpc/pseries: Fix endian issues in pseries EEH code 2013-11-21 09:19:15 +11:00
event_sources.c of/irq: simplify args to irq_create_of_mapping 2013-10-24 11:42:57 +01:00
firmware.c powerpc/pseries: Update CPU maps when device tree is updated 2013-04-26 16:08:23 +10:00
hotplug-cpu.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
hotplug-memory.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
hvCall_inst.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
hvCall.S powerpc: Merge STK_REG/PARAM/FRAMESIZE 2012-07-10 19:18:03 +10:00
hvconsole.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
hvcserver.c powerpc/pseries/hvcserver: Fix strncpy buffer limit in location code 2013-03-05 16:56:27 +11:00
io_event_irq.c trivial: powerpc: Fix typo in ioei_interrupt() description 2013-06-30 15:03:18 +10:00
iommu.c PPC: POWERNV: move iommu_add_device earlier 2013-12-05 16:08:17 +11:00
Kconfig powerpc/pseries: CONFIG_PSERIES_MSI should depend on PPC_PSERIES 2013-12-02 14:16:05 +11:00
kexec.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
lpar.c pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
lparcfg.c powerpc/pseries: Move lparcfg.c to platforms/pseries 2013-08-28 11:20:54 +10:00
Makefile powerpc/pseries: Implement arch_get_random_long() based on H_RANDOM 2013-10-11 16:50:21 +11:00
mobility.c powerpc/pseries: Add mising of_node_put in delete_dt_node 2013-08-27 14:45:15 +10:00
msi.c powerpc/pseries: Make 32-bit MSI quirk work on systems lacking firmware support 2013-05-24 18:16:54 +10:00
nvram.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-11-15 16:47:22 -08:00
offline_states.h powerpc/smp: soft-replugged CPUs must go back to start_secondary 2011-04-01 15:37:09 +11:00
pci_dlpar.c powerpc/eeh: Move common part to kernel directory 2013-06-20 17:05:35 +10:00
pci.c powerpc/pseries: Perform proper max_bus_speed detection 2013-05-06 09:25:38 +10:00
power.c
processor_idle.c pseries: Move plpar_wrapper.h to powerpc common include/asm location. 2013-08-27 14:43:05 +10:00
pseries_energy.c powerpc: Fix a number of sparse warnings 2013-08-14 11:50:24 +10:00
pseries.h powerpc/pseries: Make dlpar_configure_connector parent node aware 2013-08-27 14:45:14 +10:00
ras.c powerpc: Fix the corrupt r3 error during MCE handling. 2013-07-24 14:18:45 +10:00
reconfig.c proc: Supply PDE attribute setting accessor functions 2013-05-01 17:29:18 -04:00
rng.c powerpc/pseries: Fix SMP=n build of rng.c 2013-11-21 10:33:45 +11:00
scanlog.c ppc: Clean up scanlog 2013-05-01 17:29:45 -04:00
setup.c pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
smp.c powerpc/pseries: Do not start secondaries in Open Firmware 2013-09-25 14:19:00 +10:00
suspend.c tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00