linux/arch/powerpc/platforms
Milton Miller 6a5c7be5e4 powerpc: Override dma_get_required_mask by platform hook and ops
The hook dma_get_required_mask is supposed to return the mask required
by the platform to operate efficently.  The generic version of
dma_get_required_mask in driver/base/platform.c returns a mask based
only on max_pfn.  However, this is likely too big for iommu systems
and could be too small for platforms that require a dma offset or have
a secondary window at a high offset.

Override the default, provide a hook in ppc_md used by pseries lpar and
cell, and provide the default answer based on memblock_end_of_DRAM(),
with hooks for get_dma_offset, and provide an implementation for iommu
that looks at the defined table size.  Coverting from the end address
to the required bit mask is based on the generic implementation.

The need for this was discovered when the qla2xxx driver switched to
64 bit dma then reverted to 32 bit when dma_get_required_mask said
32 bits was sufficient.

Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org
Cc: benh@kernel.crashing.org
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-09-01 16:00:19 +10:00
..
8xx powerpc/irq: Stop exporting irq_map 2011-05-04 15:02:15 +10:00
40x powerpc/40x: Remove obsolete HCU4 board 2011-08-11 13:56:43 -04:00
44x powerpc: rename ppc_pci_*_flags to pci_*_flags 2011-07-12 09:28:04 -05:00
52xx Merge branch 'next/cross-platform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:12:10 -07:00
82xx powerpc: rename ppc_pci_*_flags to pci_*_flags 2011-07-12 09:28:04 -05:00
83xx atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
85xx atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
86xx powerpc/86xx: improve calculation of DIU pixel clock on the MPC8610 HPCD 2011-06-27 08:36:17 -05:00
512x powerpc/mpc5121_ads_cpld: Remove use of NO_IRQ_IGNORE 2011-05-19 15:31:47 +10:00
amigaone pcspkr: Cleanup Kconfig dependencies 2011-06-09 15:01:41 +02:00
cell powerpc: Override dma_get_required_mask by platform hook and ops 2011-09-01 16:00:19 +10:00
chrp Merge branch 'next/cross-platform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:12:10 -07:00
embedded6xx powerpc: Remove trival irq_host_ops.unmap 2011-05-19 15:31:39 +10:00
iseries atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
maple powerpc/maple: Register CPC925 EDAC device on all boards with CPC925 2011-06-29 17:48:26 +10:00
pasemi treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
powermac Merge branch 'next/cross-platform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:12:10 -07:00
prep pcspkr: Cleanup Kconfig dependencies 2011-06-09 15:01:41 +02:00
ps3 powerpc: Remove trival irq_host_ops.unmap 2011-05-19 15:31:39 +10:00
pseries powerpc: Override dma_get_required_mask by platform hook and ops 2011-09-01 16:00:19 +10:00
wsp powerpc: Avoid extra indirect function call in sending IPIs 2011-06-20 11:21:32 +10:00
fsl_uli1575.c PCI: add pci_bus_for_each_resource(), remove direct bus->resource[] refs 2010-02-23 09:43:31 -08:00
Kconfig powerpc: Make KVM_GUEST default to n 2011-08-05 14:47:57 +10:00
Kconfig.cputype powerpc/64: Make server perfmon only built on ppc64 server devices 2011-07-22 13:34:30 +10:00
Makefile powerpc: Add WSP platform 2011-05-06 13:32:35 +10:00