linux/arch/powerpc/platforms
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
..
8xx powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
40x powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
44x powerpc: Fix build failure when CONFIG_USB=y 2014-09-25 23:14:54 +10:00
52xx powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
82xx powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
83xx powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
85xx powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
86xx powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
512x powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
amigaone lib/scatterlist: make ARCH_HAS_SG_CHAIN an actual Kconfig 2014-08-08 15:57:26 -07:00
cell powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
chrp of/fdt: update of_get_flat_dt_prop in prep for libfdt 2014-04-30 00:59:15 -05:00
embedded6xx powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
maple POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pasemi powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
powermac The branch contains the following device tree changes the v3.17 merge 2014-08-14 09:53:39 -06:00
powernv powerpc/powernv: Override dma_get_required_mask() 2014-09-30 17:15:20 +10:00
ps3 Merge branch 'powernv-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-04-02 13:47:29 -07:00
pseries powerpc/pseries: Decrease message level on EEH initialization 2014-09-30 17:15:16 +10:00
fsl_uli1575.c of/irq: Refactor interrupt-map parsing 2013-10-24 11:43:04 +01:00
Kconfig powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
Kconfig.cputype powerpc: Use CONFIG_ARCH_HAS_FAST_MULTIPLIER 2014-09-25 23:14:49 +10:00
Makefile powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00