linux/arch/tile/include/asm
Chris Metcalf 41bb38fc53 tile pci: enable IOMMU to support DMA for legacy devices
This change uses the TRIO IOMMU to map the PCI DMA space and physical
memory at different addresses.  We also now use the dma_mapping_ops
to provide support for non-PCI DMA, PCIe DMA (64-bit) and legacy PCI
DMA (32-bit).  We use the kernel's software I/O TLB framework
(i.e. bounce buffers) for the legacy 32-bit PCI device support since
there are a limited number of TLB entries in the IOMMU and it is
non-trivial to handle indexing, searching, matching, etc.  For 32-bit
devices the performance impact of bounce buffers should not be a concern.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2012-07-18 16:40:17 -04:00
..
asm-offsets.h
atomic_32.h arch/tile: optimize get_user/put_user and friends 2012-05-25 12:48:23 -04:00
atomic_64.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
atomic.h tile: fix multiple build failures from system.h dismantle 2012-04-02 11:57:37 -04:00
auxvec.h
backtrace.h arch/tile: refactor backtracing code 2011-05-02 13:49:14 -04:00
barrier.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
bitops_32.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
bitops_64.h arch/tile: fix gcc 4.6 warnings in <asm/bitops_64.h> 2012-04-02 12:00:15 -04:00
bitops.h tile: fix bug where fls(0) was not returning 0 2012-05-25 15:00:43 -04:00
bitsperlong.h
byteorder.h arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
cache.h tilegx pci: support I/O to arbitrarily-cached pages 2012-07-18 16:40:05 -04:00
cachectl.h arch/tile: support <asm/cachectl.h> header for cacheflush() syscall 2012-05-25 12:48:24 -04:00
cacheflush.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
checksum.h arch/tile: break out the "csum a long" function to <asm/checksum.h> 2012-07-11 16:04:57 -04:00
cmpxchg.h tile: fix multiple build failures from system.h dismantle 2012-04-02 11:57:37 -04:00
compat.h bury __kernel_nlink_t, make internal nlink_t consistent 2012-05-30 21:04:50 -04:00
current.h
delay.h
device.h tile pci: enable IOMMU to support DMA for legacy devices 2012-07-18 16:40:17 -04:00
dma-mapping.h tile pci: enable IOMMU to support DMA for legacy devices 2012-07-18 16:40:17 -04:00
dma.h
edac.h drivers/edac: provide support for tile architecture 2011-03-10 13:30:14 -05:00
elf.h arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
exec.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
fixmap.h tilegx pci: support I/O to arbitrarily-cached pages 2012-07-18 16:40:05 -04:00
ftrace.h
futex.h arch/tile: optimize get_user/put_user and friends 2012-05-25 12:48:23 -04:00
hardirq.h
hardwall.h arch/tile: fix hardwall for tilegx and generalize for idn and ipi 2012-05-25 12:48:27 -04:00
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
homecache.h tilegx pci: support I/O to arbitrarily-cached pages 2012-07-18 16:40:05 -04:00
hugetlb.h arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
hv_driver.h
hw_irq.h
ide.h
io.h arch/tile: support MMIO-based readb/writeb etc. 2012-07-11 16:04:53 -04:00
irq.h arch/tile: use 0 for IRQ_RESCHEDULE instead of 1 2012-04-02 12:00:16 -04:00
irqflags.h arch/tile: use interrupt critical sections less 2012-05-25 12:48:20 -04:00
Kbuild tile pci: enable IOMMU to support DMA for legacy devices 2012-07-18 16:40:17 -04:00
kexec.h arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
kmap_types.h arch/tile: complete migration to new kmap_atomic scheme 2010-11-01 15:30:36 -04:00
kvm_para.h kvmclock: Add functions to check if the host has stopped the vm 2012-04-08 12:48:59 +03:00
linkage.h
mman.h arch/tile: provide a definition of MAP_STACK 2010-10-14 15:09:02 -04:00
mmu_context.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
mmu.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
module.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
page.h tilegx pci: support I/O to arbitrarily-cached pages 2012-07-18 16:40:05 -04:00
pci.h tile pci: enable IOMMU to support DMA for legacy devices 2012-07-18 16:40:17 -04:00
percpu.h
pgalloc.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
pgtable_32.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
pgtable_64.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
pgtable.h arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
processor.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2012-05-25 15:59:38 -07:00
ptrace.h ptrace: unify show_regs() prototype 2011-07-26 16:49:43 -07:00
sections.h arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
setup.h arch/tile: fix hardwall for tilegx and generalize for idn and ipi 2012-05-25 12:48:27 -04:00
sigcontext.h arch/tile: avoid ISO namespace pollution with <asm/sigcontext.h> 2011-11-03 16:58:36 -04:00
sigframe.h
siginfo.h arch/tile: Fix a couple of issues with the COMPAT code for TILE-Gx. 2010-08-13 08:32:21 -04:00
signal.h UAPI: Split trivial #if defined(__KERNEL__) && X conditionals 2011-12-13 15:07:49 +00:00
smp.h smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
spinlock_32.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
spinlock_64.h arch/tile: use atomic exchange in arch_write_unlock() 2012-04-02 12:13:49 -04:00
spinlock_types.h
spinlock.h
stack.h arch/tile: various bugs in stack backtracer 2012-04-02 12:12:45 -04:00
stat.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00
string.h
swab.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00
switch_to.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
syscall.h
syscalls.h arch/tile: support <asm/cachectl.h> header for cacheflush() syscall 2012-05-25 12:48:24 -04:00
thread_info.h tile: remove cpu_idle_on_new_stack 2012-06-06 11:29:31 -04:00
tile-desc_32.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc_64.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
timex.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
tlb.h
tlbflush.h arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
topology.h sched/numa: Rewrite the CONFIG_NUMA sched domain support 2012-05-09 15:00:55 +02:00
traps.h arch/tile: work around a hardware issue with the return-address stack 2012-04-02 12:12:48 -04:00
uaccess.h tile: fix bug in get_user() for 4-byte values 2012-06-16 16:56:13 -04:00
unaligned.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
unistd.h arch/tile: support <asm/cachectl.h> header for cacheflush() syscall 2012-05-25 12:48:24 -04:00
user.h
vga.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00