linux_dsm_epyc7002/arch/powerpc/platforms
Alexey Kardashevskiy 7559d3d295 powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW
By default a pseries guest supports a H_PUT_TCE hypercall which maps
a single IOMMU page in a DMA window. Additionally the hypervisor may
support H_PUT_TCE_INDIRECT/H_STUFF_TCE which update multiple TCEs at once;
this is advertised via the device tree /rtas/ibm,hypertas-functions
property which Linux converts to FW_FEATURE_MULTITCE.

FW_FEATURE_MULTITCE is checked when dma_iommu_ops is used; however
the code managing the huge DMA window (DDW) ignores it and calls
H_PUT_TCE_INDIRECT even if it is explicitly disabled via
the "multitce=off" kernel command line parameter.

This adds FW_FEATURE_MULTITCE checking to the DDW code path.

This changes tce_build_pSeriesLP to take liobn and page size as
the huge window does not have iommu_table descriptor which usually
the place to store these numbers.

Fixes: 4e8b0cf46b ("powerpc/pseries: Add support for dynamic dma windows")
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Tested-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20191216041924.42318-3-aik@ozlabs.ru
2020-01-06 16:25:30 +11:00
..
4xx powerpc: remove the ppc44x ocm.c file 2019-08-27 13:03:33 +10:00
8xx powerpc/8xx: use the fixmapped IMMR in cpm_reset() 2019-11-19 19:38:35 +11:00
40x powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
44x powerpc: remove the ppc44x ocm.c file 2019-08-27 13:03:33 +10:00
52xx compat_ioctl: move WDIOC handling into wdt drivers 2019-10-23 17:23:46 +02:00
82xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
83xx powerpc/sysdev: drop simple gpio 2019-11-21 15:41:34 +11:00
85xx powerpc/sysdev: drop simple gpio 2019-11-21 15:41:34 +11:00
86xx powerpc/sysdev: drop simple gpio 2019-11-21 15:41:34 +11:00
512x powerpc/512x: Use dma_request_chan() instead dma_request_slave_channel() 2020-01-06 16:25:29 +11:00
amigaone treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cell powerpc/spufs: remove set but not used variable 'ctx' 2019-11-13 16:58:07 +11:00
chrp treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
embedded6xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
maple powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
pasemi powerpc/powernv/ioda2: Create bigger default window with 64k IOMMU pages 2019-08-19 13:20:23 +10:00
powermac powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
powernv powerpc/powernv/iov: Ensure the pdn for VFs always contains a valid PE number 2020-01-06 16:25:28 +11:00
ps3 powerpc updates for 5.4 2019-09-20 11:48:06 -07:00
pseries powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW 2020-01-06 16:25:30 +11:00
fsl_uli1575.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
Kconfig powerpc/sysdev: drop simple gpio 2019-11-21 15:41:34 +11:00
Kconfig.cputype powerpc updates for 5.5 2019-11-30 14:35:43 -08:00
Makefile powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00