linux_dsm_epyc7002/arch/arm
Mike Looijmans 55af8a9164 ARM: 8387/1: arm/mm/dma-mapping.c: Add arm_coherent_dma_mmap
When dma-coherent transfers are enabled, the mmap call must
not change the pg_prot flags in the vma struct.

Split the arm_dma_mmap into a common and specific parts,
and add a "arm_coherent_dma_mmap" implementation that does
not alter the page protection flags.

Tested on a topic-miami board (Zynq) using the ACP port
to transfer data between FPGA and CPU using the Dyplo
framework. Without this patch, byte-wise access to mmapped
coherent DMA memory was about 20x slower because of the
memory being marked as non-cacheable, and transfer speeds
would not exceed 240MB/s.

After this patch, the mapped memory is cacheable and the
transfer speed is again 600MB/s (limited by the FPGA) when
the data is in the L2 cache, while data integrity is being
maintained.

The patch has no effect on non-coherent DMA.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-06-06 10:44:04 +01:00
..
boot Merge git://www.linux-watchdog.org/linux-watchdog 2015-04-22 11:22:55 -07:00
common ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource 2015-06-02 09:58:18 +01:00
configs ARM: SoC defconfig updates for v4.1 2015-04-22 09:21:30 -07:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-04-15 10:42:15 -07:00
firmware
include ARM: cmpxchg: avoid warnings from macro-ized cmpxchg() implementations 2015-06-02 09:58:20 +01:00
kernel ARM: remove __bad_xchg definition 2015-06-02 09:58:19 +01:00
kvm This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
lib ARM: ensure delay timer has sufficient accuracy for delays 2015-04-14 22:28:07 +01:00
mach-alpine ARM: alpine: add support for generic pci 2015-04-14 01:15:57 +02:00
mach-asm9260
mach-at91 Fourth batch of cleanup for 4.1: 2015-04-14 01:50:21 +02:00
mach-axxia
mach-bcm ARM: cygnus: fix const declaration bcm_cygnus_dt_compat 2015-03-24 15:13:23 -07:00
mach-berlin
mach-clps711x
mach-cns3xxx
mach-davinci ARM: DT updates for v4.1 2015-04-22 09:09:46 -07:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC late changes for v4.1 2015-04-22 09:24:55 -07:00
mach-integrator ARM: 8365/1: introduce sp804_timer_disable and remove arm_timer.h inclusion 2015-06-02 09:58:18 +01:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone
mach-ks8695
mach-lpc32xx
mach-mediatek
mach-meson
mach-mmp
mach-moxart
mach-mv78xx0
mach-mvebu ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource 2015-06-02 09:58:18 +01:00
mach-omap1
mach-omap2 ARM: SoC late changes for v4.1 2015-04-22 09:24:55 -07:00
mach-orion5x
mach-picoxcell
mach-prima2
mach-pxa power supply and reset changes for the v4.1 series 2015-04-13 15:21:34 -07:00
mach-qcom
mach-realview ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource 2015-06-02 09:58:18 +01:00
mach-rockchip
mach-rpc
mach-s3c24xx
mach-s3c64xx ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
mach-s5pv210 ARM: 8326/1: s5pv210: move resume code to .text section 2015-03-29 23:11:58 +01:00
mach-sa1100 ARM: 8346/1: sa1100: Constify irq_domain_ops 2015-05-08 10:42:33 +01:00
mach-shmobile Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
mach-socfpga
mach-spear
mach-sti
mach-sunxi
mach-tegra Power management and ACPI updates for v4.1-rc1 2015-04-14 20:21:54 -07:00
mach-u300
mach-ux500
mach-versatile ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource 2015-06-02 09:58:18 +01:00
mach-vexpress ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-vt8500
mach-w90x900
mach-zynq
mm ARM: 8387/1: arm/mm/dma-mapping.c: Add arm_coherent_dma_mmap 2015-06-06 10:44:04 +01:00
net
nwfpe ARM: 8322/1: keep .text and .fixup regions closer together 2015-03-29 23:11:56 +01:00
oprofile
plat-iop
plat-omap ARM, clocksource/drivers: Provide read_boot_clock64() and read_persistent_clock64() and use them 2015-04-03 08:18:23 +02:00
plat-orion
plat-pxa ARM: plat-pxa: remove use of seq_printf return value 2015-04-15 16:35:25 -07:00
plat-samsung
plat-versatile
probes
tools
vdso ARM: 8344/1: VDSO: honor CONFIG_VDSO in Makefile 2015-04-21 15:28:02 +01:00
vfp
xen
Kconfig ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource 2015-06-02 09:58:18 +01:00
Kconfig-nommu
Kconfig.debug ARM: SoC multiplatform code changes for v4.1 2015-04-22 09:20:15 -07:00
Makefile ARM: 8220/1: allow modules outside of bl range 2015-05-08 10:42:34 +01:00