diff options
author | Alexey Kardashevskiy <aik@ozlabs.ru> | 2013-11-21 06:43:14 (GMT) |
---|---|---|
committer | Emil Medve <Emilian.Medve@Freescale.com> | 2014-01-06 17:52:15 (GMT) |
commit | aa0d013a113d00ef9cedf03dc34f678311ec028a (patch) | |
tree | 16865175c144ef741291c3d20d64325ac96d0cba /sound/soc/soc-utils.c | |
parent | ca6c62eb88889c12b89634c2fa947793fa3e6bdb (diff) | |
download | linux-fsl-qoriq-aa0d013a113d00ef9cedf03dc34f678311ec028a.tar.xz |
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>
Diffstat (limited to 'sound/soc/soc-utils.c')
0 files changed, 0 insertions, 0 deletions