[GIT PULL] dma-mapping tree for 4.13-rc1

From: Christoph Hellwig
Date: Wed Jul 05 2017 - 22:09:32 EST


The following changes since commit 41f1830f5a7af77cf5c86359aba3cbd706687e52:

Linux 4.12-rc6 (2017-06-19 22:19:37 +0800)

are available in the git repository at:

git://git.infradead.org/users/hch/dma-mapping.git tags/dma-mapping-4.13

for you to fetch changes up to 1655cf8829d82d367d8fdb5cb58e5885d7d2a391:

ARM: dma-mapping: Remove traces of NOMMU code (2017-06-30 10:03:11 -0700)

----------------------------------------------------------------
This is the first pull request for the new dma-mapping subsystem

In this new subsystem we'll try to properly maintain all the generic
code related to dma-mapping, and will further consolidate arch code
into common helpers.

This pull request contains:

- removal of the DMA_ERROR_CODE macro, replacing it with calls
to ->mapping_error so that the dma_map_ops instances are
more self contained and can be shared across architectures (me)
- removal of the ->set_dma_mask method, which duplicates the
->dma_capable one in terms of functionality, but requires more
duplicate code.
- various updates for the coherent dma pool and related arm code
(Vladimir)
- various smaller cleanups (me)

----------------------------------------------------------------
Arnd Bergmann (1):
crypto: qat - avoid an uninitialized variable warning

Christoph Hellwig (48):
firmware/ivc: use dma_mapping_error
ibmveth: properly unwind on init errors
dmaengine: ioat: don't use DMA_ERROR_CODE
drm/exynos: don't use DMA_ERROR_CODE
drm/armada: don't abuse DMA_ERROR_CODE
iommu/dma: don't rely on DMA_ERROR_CODE
xen-swiotlb: consolidate xen_swiotlb_dma_ops
xen-swiotlb: implement ->mapping_error
c6x: remove DMA_ERROR_CODE
ia64: remove DMA_ERROR_CODE
m32r: remove DMA_ERROR_CODE
microblaze: remove DMA_ERROR_CODE
openrisc: remove DMA_ERROR_CODE
sh: remove DMA_ERROR_CODE
xtensa: remove DMA_ERROR_CODE
arm64: remove DMA_ERROR_CODE
hexagon: switch to use ->mapping_error for error reporting
iommu/amd: implement ->mapping_error
s390: implement ->mapping_error
sparc: implement ->mapping_error
powerpc: implement ->mapping_error
x86/pci-nommu: implement ->mapping_error
x86/calgary: implement ->mapping_error
x86: remove DMA_ERROR_CODE
arm: implement ->mapping_error
dma-mapping: remove DMA_ERROR_CODE
sparc: remove leon_dma_ops
sparc: remove arch specific dma_supported implementations
dma-noop: remove dma_supported and mapping_error methods
dma-virt: remove dma_supported and mapping_error methods
hexagon: remove arch-specific dma_supported implementation
hexagon: remove the unused dma_is_consistent prototype
openrisc: remove arch-specific dma_supported implementation
arm: remove arch specific dma_supported implementation
x86: remove arch specific dma_supported implementation
dma-mapping: remove HAVE_ARCH_DMA_SUPPORTED
mips/loongson64: implement ->dma_supported instead of ->set_dma_mask
arm: implement ->dma_supported instead of ->set_dma_mask
xen-swiotlb: remove xen_swiotlb_set_dma_mask
tile: remove dma_supported and mapping_error methods
powerpc/cell: clean up fixed mapping dma_ops initialization
powerpc/cell: use the dma_supported method for ops switching
dma-mapping: remove the set_dma_mask method
powerpc: merge __dma_set_mask into dma_set_mask
MAINTAINERS: add entry for dma mapping helpers
au1100fb: remove a bogus dma_free_nonconsistent call
dma-mapping: remove dmam_free_noncoherent
dma-mapping: replace dmam_alloc_noncoherent with dmam_alloc_attrs

Vladimir Murzin (7):
dma: Take into account dma_pfn_offset
drivers: dma-coherent: Account dma_pfn_offset when used with device tree
drivers: dma-coherent: Introduce default DMA pool
drivers: dma-mapping: allow dma_common_mmap() for NOMMU
ARM: NOMMU: Introduce dma operations for noMMU
ARM: NOMMU: Set ARM_DMA_MEM_BUFFERABLE for M-class cpus
ARM: dma-mapping: Remove traces of NOMMU code

Documentation/DMA-API-HOWTO.txt | 31 +--
.../bindings/reserved-memory/reserved-memory.txt | 3 +
Documentation/driver-model/devres.txt | 3 +-
MAINTAINERS | 15 ++
arch/arm/Kconfig | 1 +
arch/arm/common/dmabounce.c | 19 +-
arch/arm/include/asm/dma-iommu.h | 4 +
arch/arm/include/asm/dma-mapping.h | 6 +-
arch/arm/mm/Kconfig | 8 +-
arch/arm/mm/Makefile | 5 +-
arch/arm/mm/dma-mapping-nommu.c | 228 +++++++++++++++++++++
arch/arm/mm/dma-mapping.c | 77 +++----
arch/arm/xen/mm.c | 17 --
arch/arm64/include/asm/dma-mapping.h | 1 -
arch/arm64/mm/dma-mapping.c | 3 +-
arch/blackfin/Kconfig | 1 +
arch/c6x/include/asm/dma-mapping.h | 5 -
arch/hexagon/include/asm/dma-mapping.h | 5 -
arch/hexagon/kernel/dma.c | 21 +-
arch/hexagon/kernel/hexagon_ksyms.c | 1 -
arch/ia64/include/asm/dma-mapping.h | 2 -
arch/m32r/Kconfig | 1 +
arch/m32r/include/asm/dma-mapping.h | 2 -
arch/m68k/Kconfig | 1 +
arch/microblaze/Kconfig | 1 +
arch/microblaze/include/asm/dma-mapping.h | 2 -
arch/mips/loongson64/common/dma-swiotlb.c | 19 +-
arch/openrisc/include/asm/dma-mapping.h | 9 -
arch/powerpc/include/asm/dma-mapping.h | 5 -
arch/powerpc/include/asm/iommu.h | 4 +
arch/powerpc/kernel/dma-iommu.c | 6 +
arch/powerpc/kernel/dma.c | 17 +-
arch/powerpc/kernel/iommu.c | 28 +--
arch/powerpc/platforms/cell/iommu.c | 53 ++---
arch/powerpc/platforms/pseries/vio.c | 3 +-
arch/s390/include/asm/dma-mapping.h | 2 -
arch/s390/pci/pci_dma.c | 18 +-
arch/sh/Kconfig | 1 +
arch/sh/include/asm/dma-mapping.h | 2 -
arch/sparc/include/asm/dma-mapping.h | 8 +-
arch/sparc/kernel/iommu.c | 52 +++--
arch/sparc/kernel/iommu_common.h | 2 +
arch/sparc/kernel/ioport.c | 27 +--
arch/sparc/kernel/pci_sun4v.c | 31 ++-
arch/tile/kernel/pci-dma.c | 30 ---
arch/x86/include/asm/dma-mapping.h | 5 -
arch/x86/include/asm/iommu.h | 2 +
arch/x86/kernel/amd_gart_64.c | 1 +
arch/x86/kernel/pci-calgary_64.c | 25 ++-
arch/x86/kernel/pci-dma.c | 8 +-
arch/x86/kernel/pci-nommu.c | 11 +-
arch/x86/pci/sta2x11-fixup.c | 3 +-
arch/x86/xen/pci-swiotlb-xen.c | 14 --
arch/xtensa/Kconfig | 1 +
arch/xtensa/include/asm/dma-mapping.h | 2 -
drivers/base/dma-coherent.c | 74 ++++++-
drivers/base/dma-mapping.c | 60 ++----
drivers/crypto/qat/qat_common/qat_algs.c | 40 ++--
drivers/dma/ioat/init.c | 24 +--
drivers/firmware/tegra/ivc.c | 4 +-
drivers/gpu/drm/armada/armada_fb.c | 2 +-
drivers/gpu/drm/armada/armada_gem.c | 5 +-
drivers/gpu/drm/armada/armada_gem.h | 1 +
drivers/gpu/drm/exynos/exynos_drm_fb.c | 4 +-
drivers/iommu/amd_iommu.c | 20 +-
drivers/iommu/dma-iommu.c | 18 +-
drivers/iommu/intel-iommu.c | 3 +
drivers/net/ethernet/ibm/ibmveth.c | 159 +++++++-------
drivers/video/fbdev/au1100fb.c | 4 -
drivers/video/fbdev/au1200fb.c | 5 +-
drivers/xen/swiotlb-xen.c | 113 +++++-----
include/linux/dma-mapping.h | 20 +-
include/xen/swiotlb-xen.h | 62 +-----
lib/dma-noop.c | 21 +-
lib/dma-virt.c | 12 --
75 files changed, 778 insertions(+), 725 deletions(-)
create mode 100644 arch/arm/mm/dma-mapping-nommu.c