linux/arch/arm/include/asm
Jim Quinlan e0d072782c dma-mapping: introduce DMA range map, supplanting dma_pfn_offset
The new field 'dma_range_map' in struct device is used to facilitate the
use of single or multiple offsets between mapping regions of cpu addrs and
dma addrs.  It subsumes the role of "dev->dma_pfn_offset" which was only
capable of holding a single uniform offset and had no region bounds
checking.

The function of_dma_get_range() has been modified so that it takes a single
argument -- the device node -- and returns a map, NULL, or an error code.
The map is an array that holds the information regarding the DMA regions.
Each range entry contains the address offset, the cpu_start address, the
dma_start address, and the size of the region.

of_dma_configure() is the typical manner to set range offsets but there are
a number of ad hoc assignments to "dev->dma_pfn_offset" in the kernel
driver code.  These cases now invoke the function
dma_direct_set_offset(dev, cpu_addr, dma_addr, size).

Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com>
[hch: various interface cleanups]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Tested-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
2020-09-17 18:43:56 +02:00
..
hardware ARM: 8993/1: remove it8152 PCI controller driver 2020-07-21 16:33:41 +01:00
mach
vdso vdso/treewide: Add vdso_data pointer argument to __arch_get_hw_counter() 2020-08-06 10:57:30 +02:00
xen
arch_gicv3.h
arch_timer.h
arm-cci.h
asm-offsets.h
assembler.h ARM updates for 5.8-rc1: 2020-06-01 15:36:32 -07:00
atomic.h locking/atomic: Move ATOMIC_INIT into linux/types.h 2020-07-29 16:14:18 +02:00
auxvec.h
barrier.h
bitops.h
bitrev.h
bL_switcher.h
bug.h arm/asm: add loglvl to c_backtrace() 2020-06-09 09:39:10 -07:00
bugs.h
cache.h
cacheflush.h arm: rename flush_cache_user_range to flush_icache_user_range 2020-06-08 11:05:58 -07:00
cachetype.h
checksum.h arm: switch to csum_and_copy_from_user() 2020-05-29 16:11:49 -04:00
clocksource.h
cmpxchg.h
compiler.h
cp15.h
cpu.h
cpufeature.h
cpuidle.h
cputype.h
cti.h
dcc.h
delay.h
device.h arm: Remove dev->archdata.iommu pointer 2020-06-30 11:59:48 +02:00
div64.h
dma-contiguous.h
dma-direct.h dma-mapping: introduce DMA range map, supplanting dma_pfn_offset 2020-09-17 18:43:56 +02:00
dma-iommu.h
dma-mapping.h ARM/dma-mapping: move various helpers from dma-mapping.h to dma-direct.h 2020-09-17 18:43:24 +02:00
dma.h
dmi.h
domain.h
ecard.h
edac.h
efi.h efi/libstub: arm: Print CPU boot mode and MMU state at boot 2020-06-17 15:29:11 +02:00
elf.h
entry-macro-multi.S
exception.h
fb.h
fiq.h
firmware.h
fixmap.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
floppy.h floppy: split the base port from the register in I/O accesses 2020-05-12 19:34:52 +03:00
fncpy.h
fpstate.h
ftrace.h
futex.h ARM: futex: Address build warning 2020-05-07 00:41:47 +02:00
glue-cache.h
glue-df.h
glue-pf.h
glue-proc.h
glue.h
gpio.h
hardirq.h
highmem.h kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
hugetlb-3level.h
hugetlb.h mm/hugetlb: define a generic fallback for arch_clear_hugepage_flags() 2020-06-03 20:09:46 -07:00
hw_breakpoint.h
hw_irq.h
hwcap.h
hypervisor.h
ide.h
idmap.h mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
insn.h
io.h
irq.h
irq_work.h
irqflags.h
jump_label.h
Kbuild
kexec.h
kgdb.h
kmap_types.h
kprobes.h
krait-l2-accessors.h
linkage.h
mc146818rtc.h
mcpm.h
mcs_spinlock.h
memblock.h
memory.h
mmu.h
mmu_context.h
module.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
mpu.h
mtd-xip.h
neon.h
nwflash.h
opcodes-sec.h
opcodes-virt.h
opcodes.h
outercache.h
page-nommu.h
page.h mm/vma: define a default value for VM_DATA_DEFAULT_FLAGS 2020-04-10 15:36:21 -07:00
paravirt.h
patch.h
pci.h
percpu.h ARM: percpu.h: fix build error 2020-07-30 13:01:04 -07:00
perf_event.h
pgalloc.h asm-generic: pgalloc: provide generic pgd_free() 2020-08-07 11:33:26 -07:00
pgtable-2level-hwdef.h
pgtable-2level-types.h
pgtable-2level.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
pgtable-3level-hwdef.h
pgtable-3level-types.h
pgtable-3level.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
pgtable-hwdef.h
pgtable-nommu.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
pgtable.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
probes.h
proc-fns.h
processor.h
procinfo.h
prom.h
psci.h
ptdump.h
ptrace.h
sections.h
secure_cntvoff.h
set_memory.h
setup.h
shmparam.h
signal.h
smp.h
smp_plat.h
smp_scu.h
smp_twd.h
sparsemem.h
spinlock.h
spinlock_types.h
stackprotector.h
stacktrace.h
string.h
suspend.h
swab.h
switch_to.h
sync_bitops.h
syscall.h
system_info.h
system_misc.h
tcm.h
therm.h
thread_info.h arm: Break cyclic percpu include 2020-07-10 12:00:02 +02:00
thread_notify.h
timex.h
tlb.h mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
tlbflush.h
tls.h
topology.h arch_topology, sched/core: Cleanup thermal pressure definition 2020-07-22 10:22:05 +02:00
traps.h arm/asm: add loglvl to c_backtrace() 2020-06-09 09:39:10 -07:00
uaccess-asm.h ARM: uaccess: fix DACR mismatch with nested exceptions 2020-05-03 17:30:27 +01:00
uaccess.h uaccess: remove segment_eq 2020-08-12 10:57:58 -07:00
ucontext.h
unaligned.h
unified.h
unistd.h
unwind.h arm: add loglvl to unwind_backtrace() 2020-06-09 09:39:10 -07:00
uprobes.h
user.h
v7m.h
vdso.h
vdso_datapage.h
vermagic.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
vfp.h ARM: 8991/1: use VFP assembler mnemonics if available 2020-07-21 16:33:39 +01:00
vfpmacros.h ARM: 8991/1: use VFP assembler mnemonics if available 2020-07-21 16:33:39 +01:00
vga.h
virt.h
vmalloc.h
word-at-a-time.h
xor.h