Re: a saner API for allocating DMA addressable pages
From: Helge Deller <deller@gmx.de>
Date: 2020-08-29 09:48:00
Also in:
alsa-devel, linux-doc, linux-iommu, linux-media, linux-mips, linux-mm, linux-nvme, linux-samsung-soc, linux-scsi, lkml, netdev, nouveau
Hi Christoph, On 19.08.20 08:55, Christoph Hellwig wrote:
this series replaced the DMA_ATTR_NON_CONSISTENT flag to dma_alloc_attrs
with a separate new dma_alloc_pages API, which is available on all
platforms. In addition to cleaning up the convoluted code path, this
ensures that other drivers that have asked for better support for
non-coherent DMA to pages with incurring bounce buffering over can finally
be properly supported.
....
A git tree is available here:
git://git.infradead.org/users/hch/misc.git dma_alloc_pagesI've tested this tree on my parisc machine which uses the 53c700 and lasi_82596 drivers. Everything worked as expected, so you may add: Tested-by: Helge Deller <deller@gmx.de> # parisc Thanks! Helge
Gitweb:
http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/dma_alloc_pages
Diffstat:
Documentation/core-api/dma-api.rst | 92 ++----
Documentation/core-api/dma-attributes.rst | 8
Documentation/userspace-api/media/v4l/buffer.rst | 17 -
Documentation/userspace-api/media/v4l/vidioc-reqbufs.rst | 1
arch/alpha/kernel/pci_iommu.c | 2
arch/arm/include/asm/dma-direct.h | 4
arch/arm/mm/dma-mapping-nommu.c | 2
arch/arm/mm/dma-mapping.c | 4
arch/ia64/Kconfig | 3
arch/ia64/hp/common/sba_iommu.c | 2
arch/ia64/kernel/dma-mapping.c | 14
arch/ia64/mm/init.c | 3
arch/mips/Kconfig | 1
arch/mips/bmips/dma.c | 4
arch/mips/cavium-octeon/dma-octeon.c | 4
arch/mips/include/asm/dma-direct.h | 4
arch/mips/include/asm/jazzdma.h | 2
arch/mips/jazz/jazzdma.c | 102 +------
arch/mips/loongson2ef/fuloong-2e/dma.c | 4
arch/mips/loongson2ef/lemote-2f/dma.c | 4
arch/mips/loongson64/dma.c | 4
arch/mips/mm/dma-noncoherent.c | 48 +--
arch/mips/pci/pci-ar2315.c | 4
arch/mips/pci/pci-xtalk-bridge.c | 4
arch/mips/sgi-ip32/ip32-dma.c | 4
arch/parisc/Kconfig | 1
arch/parisc/kernel/pci-dma.c | 6
arch/powerpc/include/asm/dma-direct.h | 4
arch/powerpc/kernel/dma-iommu.c | 2
arch/powerpc/platforms/ps3/system-bus.c | 4
arch/powerpc/platforms/pseries/vio.c | 2
arch/s390/pci/pci_dma.c | 2
arch/x86/kernel/amd_gart_64.c | 8
drivers/gpu/drm/exynos/exynos_drm_gem.c | 2
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 3
drivers/iommu/dma-iommu.c | 2
drivers/iommu/intel/iommu.c | 6
drivers/media/common/videobuf2/videobuf2-core.c | 36 --
drivers/media/common/videobuf2/videobuf2-dma-contig.c | 19 -
drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3
drivers/media/common/videobuf2/videobuf2-v4l2.c | 12
drivers/net/ethernet/amd/au1000_eth.c | 15 -
drivers/net/ethernet/i825xx/lasi_82596.c | 36 +-
drivers/net/ethernet/i825xx/lib82596.c | 148 +++++-----
drivers/net/ethernet/i825xx/sni_82596.c | 23 -
drivers/net/ethernet/seeq/sgiseeq.c | 24 -
drivers/nvme/host/pci.c | 79 ++---
drivers/parisc/ccio-dma.c | 2
drivers/parisc/sba_iommu.c | 2
drivers/scsi/53c700.c | 120 ++++----
drivers/scsi/53c700.h | 9
drivers/scsi/sgiwd93.c | 14
drivers/xen/swiotlb-xen.c | 2
include/linux/dma-direct.h | 55 ++-
include/linux/dma-mapping.h | 32 +-
include/linux/dma-noncoherent.h | 21 -
include/linux/dmapool.h | 23 +
include/linux/gfp.h | 6
include/media/videobuf2-core.h | 3
include/uapi/linux/videodev2.h | 2
kernel/dma/Kconfig | 9
kernel/dma/Makefile | 1
kernel/dma/coherent.c | 17 +
kernel/dma/direct.c | 112 +++++--
kernel/dma/mapping.c | 104 ++-----
kernel/dma/ops_helpers.c | 86 ++++++
kernel/dma/pool.c | 2
kernel/dma/swiotlb.c | 4
kernel/dma/virt.c | 2
mm/dmapool.c | 211 +++++++++------
sound/mips/hal2.c | 58 +---
71 files changed, 872 insertions(+), 803 deletions(-)_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel