powerpc: fsl_pci, swiotlb: Move controller ops from ppc_md to controller_ops
commit97884e00e29ad6654b8b6939bb805b9d6303427c
authorDaniel Axtens <dja@axtens.net>
Fri, 10 Apr 2015 03:15:47 +0000 (10 13:15 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sat, 11 Apr 2015 10:49:17 +0000 (11 20:49 +1000)
treec9c154d1927be0cc17353d51c2e7ba47c81b3375
parent19124d6deed32c5c7096f1892dd9f3882cef4605
powerpc: fsl_pci, swiotlb: Move controller ops from ppc_md to controller_ops

Move the installation of DMA operations out of swiotlb's subsys
initcall, and into the generic PCI controller operations struct.

These ops are installed conditionally, based on the ppc_swiotlb_enable
global. The global can be set in two places:
 - swiotlb_detect_4g, which is always called at the arch initcall level
 - setup_pci_atmu, which is called as part of the fsl_add_bridge and
fsl_pci_syscore_do_resume.

fsl_pci_syscore_do_resume is called late enough that any changes as a
result of that call will have no effect.

As such, if we test the global and set the operations as part of
fsl_add_bridge, after the call to setup_pci_atmu, we can be confident
that it will cover all the PCI implementations affected by the changes
to dma-swiotlb.c.

Signed-off-by: Daniel Axtens <dja@axtens.net>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/dma-swiotlb.c
arch/powerpc/sysdev/fsl_pci.c