Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5a59464 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'dma-mapping-4.18' of git://git.infradead.org/users/hch/dma-mapping

Pull dma-mapping updates from Christoph Hellwig:

 - replace the force_dma flag with a dma_configure bus method. (Nipun
   Gupta, although one patch is іncorrectly attributed to me due to a
   git rebase bug)

 - use GFP_DMA32 more agressively in dma-direct. (Takashi Iwai)

 - remove PCI_DMA_BUS_IS_PHYS and rely on the dma-mapping API to do the
   right thing for bounce buffering.

 - move dma-debug initialization to common code, and apply a few
   cleanups to the dma-debug code.

 - cleanup the Kconfig mess around swiotlb selection

 - swiotlb comment fixup (Yisheng Xie)

 - a trivial swiotlb fix. (Dan Carpenter)

 - support swiotlb on RISC-V. (based on a patch from Palmer Dabbelt)

 - add a new generic dma-noncoherent dma_map_ops implementation and use
   it for arc, c6x and nds32.

 - improve scatterlist validity checking in dma-debug. (Robin Murphy)

 - add a struct device quirk to limit the dma-mask to 32-bit due to
   bridge/system issues, and switch x86 to use it instead of a local
   hack for VIA bridges.

 - handle devices without a dma_mask more gracefully in the dma-direct
   code.

* tag 'dma-mapping-4.18' of git://git.infradead.org/users/hch/dma-mapping: (48 commits)
  dma-direct: don't crash on device without dma_mask
  nds32: use generic dma_noncoherent_ops
  nds32: implement the unmap_sg DMA operation
  nds32: consolidate DMA cache maintainance routines
  x86/pci-dma: switch the VIA 32-bit DMA quirk to use the struct device flag
  x86/pci-dma: remove the explicit nodac and allowdac option
  x86/pci-dma: remove the experimental forcesac boot option
  Documentation/x86: remove a stray reference to pci-nommu.c
  core, dma-direct: add a flag 32-bit dma limits
  dma-mapping: remove unused gfp_t parameter to arch_dma_alloc_attrs
  dma-debug: check scatterlist segments
  c6x: use generic dma_noncoherent_ops
  arc: use generic dma_noncoherent_ops
  arc: fix arc_dma_{map,unmap}_page
  arc: fix arc_dma_sync_sg_for_{cpu,device}
  arc: simplify arc_dma_sync_single_for_{cpu,device}
  dma-mapping: provide a generic dma-noncoherent implementation
  dma-mapping: simplify Kconfig dependencies
  riscv: add swiotlb support
  riscv: only enable ZONE_DMA32 for 64-bit
  ...
parents f956d08a 2550bbfd
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1705,7 +1705,6 @@
		nopanic
		merge
		nomerge
		forcesac
		soft
		pt		[x86, IA-64]
		nobypass	[PPC/POWERNV]
+0 −31
Original line number Diff line number Diff line
#
# Feature name:          dma-api-debug
#         Kconfig:       HAVE_DMA_API_DEBUG
#         description:   arch supports DMA debug facilities
#
    -----------------------
    |         arch |status|
    -----------------------
    |       alpha: | TODO |
    |         arc: | TODO |
    |         arm: |  ok  |
    |       arm64: |  ok  |
    |         c6x: |  ok  |
    |       h8300: | TODO |
    |     hexagon: | TODO |
    |        ia64: |  ok  |
    |        m68k: | TODO |
    |  microblaze: |  ok  |
    |        mips: |  ok  |
    |       nios2: | TODO |
    |    openrisc: | TODO |
    |      parisc: | TODO |
    |     powerpc: |  ok  |
    |        s390: |  ok  |
    |          sh: |  ok  |
    |       sparc: |  ok  |
    |          um: | TODO |
    |   unicore32: | TODO |
    |         x86: |  ok  |
    |      xtensa: |  ok  |
    -----------------------
+3 −10
Original line number Diff line number Diff line
@@ -187,9 +187,9 @@ PCI

IOMMU (input/output memory management unit)

 Currently four x86-64 PCI-DMA mapping implementations exist:
 Multiple x86-64 PCI-DMA mapping implementations exist, for example:

   1. <arch/x86_64/kernel/pci-nommu.c>: use no hardware/software IOMMU at all
   1. <lib/dma-direct.c>: use no hardware/software IOMMU at all
      (e.g. because you have < 3 GB memory).
      Kernel boot message: "PCI-DMA: Disabling IOMMU"

@@ -208,7 +208,7 @@ IOMMU (input/output memory management unit)
      Kernel boot message: "PCI-DMA: Using Calgary IOMMU"

 iommu=[<size>][,noagp][,off][,force][,noforce][,leak[=<nr_of_leak_pages>]
	[,memaper[=<order>]][,merge][,forcesac][,fullflush][,nomerge]
	[,memaper[=<order>]][,merge][,fullflush][,nomerge]
	[,noaperture][,calgary]

  General iommu options:
@@ -235,14 +235,7 @@ IOMMU (input/output memory management unit)
                       (experimental).
    nomerge            Don't do scatter-gather (SG) merging.
    noaperture         Ask the IOMMU not to touch the aperture for AGP.
    forcesac           Force single-address cycle (SAC) mode for masks <40bits
                       (experimental).
    noagp              Don't initialize the AGP driver and use full aperture.
    allowdac           Allow double-address cycle (DAC) mode, i.e. DMA >4GB.
                       DAC is used with 32-bit PCI to push a 64-bit address in
                       two cycles. When off all DMA over >4GB is forced through
                       an IOMMU or software bounce buffering.
    nodac              Forbid DAC mode, i.e. DMA >4GB.
    panic              Always panic when IOMMU overflows.
    calgary            Use the Calgary IOMMU if it is available

+2 −0
Original line number Diff line number Diff line
@@ -4330,12 +4330,14 @@ W: http://git.infradead.org/users/hch/dma-mapping.git
S:	Supported
F:	lib/dma-debug.c
F:	lib/dma-direct.c
F:	lib/dma-noncoherent.c
F:	lib/dma-virt.c
F:	drivers/base/dma-mapping.c
F:	drivers/base/dma-coherent.c
F:	include/asm-generic/dma-mapping.h
F:	include/linux/dma-direct.h
F:	include/linux/dma-mapping.h
F:	include/linux/dma-noncoherent.h

DME1737 HARDWARE MONITOR DRIVER
M:	Juerg Haefliger <juergh@gmail.com>
+0 −3
Original line number Diff line number Diff line
@@ -278,9 +278,6 @@ config HAVE_CLK
	  The <linux/clk.h> calls support software clock gating and
	  thus are a key power management tool on many systems.

config HAVE_DMA_API_DEBUG
	bool

config HAVE_HW_BREAKPOINT
	bool
	depends on PERF_EVENTS
Loading