linux/arch/powerpc
Gavin Shan fe7e85c6f5 powerpc/powernv: Override dma_get_required_mask()
The dma_get_required_mask() function is used by some drivers to
query the platform about what DMA mask is needed to cover all of
memory. This is a bit of a strange semantic when we have to choose
between IOMMU translation or bypass, but essentially what it means
is "what DMA mask will give best performances".

Currently, our IOMMU backend always returns a 32-bit mask here, we
don't do anything special to it when we have bypass available. This
causes some drivers to choose a 32-bit mask, thus losing the ability
to use the bypass window, thinking this is more efficient. The problem
was reported from the driver of following device:

0004:03:00.0 0107: 1000:0087 (rev 05)
0004:03:00.0 Serial Attached SCSI controller: LSI Logic / Symbios \
             Logic SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05)

This patch adds an override of that function in order to, instead,
return a 64-bit mask whenever a bypass window is available in order
for drivers to prefer this configuration.

Reported-by: Murali N. Iyer <mniyer@us.ibm.com>
Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2014-09-30 17:15:20 +10:00
..
boot powerpc/boot: Don't install zImage.* from make install 2014-09-25 23:14:34 +10:00
configs powerpc: Make CONFIG_FHANDLE=y for all 64 bit powerpc defconfigs 2014-09-09 19:02:46 +10:00
crypto
include powerpc/powernv: Override dma_get_required_mask() 2014-09-30 17:15:20 +10:00
kernel powerpc/powernv: Override dma_get_required_mask() 2014-09-30 17:15:20 +10:00
kvm powerpc/kvm/cma: Fix panic introduces by signed shift operation 2014-09-03 10:34:07 +02:00
lib powerpc: Implement emulation of string loads and stores 2014-09-25 23:14:52 +10:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm powerpc/mm: Unindent htab_dt_scan_page_sizes() 2014-09-25 23:14:56 +10:00
net net: filter: split 'struct sk_filter' into socket and bpf parts 2014-08-02 15:03:58 -07:00
oprofile powerpc: Ensure global functions include their prototype 2014-09-25 23:14:42 +10:00
perf powerpc: Make a bunch of things static 2014-09-25 23:14:41 +10:00
platforms powerpc/powernv: Override dma_get_required_mask() 2014-09-30 17:15:20 +10:00
sysdev powerpc/powernv: Don't call generic code on offline cpus 2014-09-25 23:14:50 +10:00
xmon powerpc: Hard disable interrupts in xmon 2014-08-13 15:13:48 +10:00
Kconfig powerpc: Enable DCACHE_WORD_ACCESS on ppc64le 2014-09-30 14:59:13 +10:00
Kconfig.debug Patch queue for ppc - 2014-08-01 2014-08-05 09:58:11 +02:00
Makefile powerpc: Add POWER8 CPU selection 2014-09-25 23:14:49 +10:00
relocs_check.pl Fix warning typo "CONFIG_RELCOATABLE" 2013-05-29 15:11:30 +02:00