linux-stable-rt/arch
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
..
alpha All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
arm Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-08-29 16:34:07 -07:00
avr32 All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
blackfin All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
cris All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
frv All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
h8300 All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
ia64 All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
m32r All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
m68k All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
microblaze All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
mips All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
mn10300 All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
openrisc
parisc remove remaining references to nfsservctl 2011-08-29 16:31:59 -07:00
powerpc powerpc: Override dma_get_required_mask by platform hook and ops 2011-09-01 16:00:19 +10:00
s390 All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
score
sh Merge branch 'sh-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-3.x 2011-08-29 13:34:48 -07:00
sparc sparc64: Only Panther cheetah+ chips have POPC. 2011-08-29 21:14:29 -07:00
tile
um
unicore32
x86 All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
xtensa All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
.gitignore
Kconfig