android_kernel_motorola_sm6375/include/asm-avr32
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Haavard Skinnemoen 3bfb1d20b5 dmaengine: Driver for the Synopsys DesignWare DMA controller
This adds a driver for the Synopsys DesignWare DMA controller (aka
DMACA on AVR32 systems.) This DMA controller can be found integrated
on the AT32AP7000 chip and is primarily meant for peripheral DMA
transfer, but can also be used for memory-to-memory transfers.

This patch is based on a driver from David Brownell which was based on
an older version of the DMA Engine framework. It also implements the
proposed extensions to the DMA Engine API for slave DMA operations.

The dmatest client shows no problems, but there may still be room for
improvement performance-wise. DMA slave transfer performance is
definitely "good enough"; reading 100 MiB from an SD card running at ~20
MHz yields ~7.2 MiB/s average transfer rate.

Full documentation for this controller can be found in the Synopsys
DW AHB DMAC Databook:

http://www.synopsys.com/designware/docs/iip/DW_ahb_dmac/latest/doc/dw_ahb_dmac_db.pdf

The controller has lots of implementation options, so it's usually a
good idea to check the data sheet of the chip it's intergrated on as
well. The AT32AP7000 data sheet can be found here:

http://www.atmel.com/dyn/products/datasheets.asp?family_id=682


Changes since v4:
  * Use client_count instead of dma_chan_is_in_use()
  * Add missing include
  * Unmap buffers unless client told us not to

Changes since v3:
  * Update to latest DMA engine and DMA slave APIs
  * Embed the hw descriptor into the sw descriptor
  * Clean up and update MODULE_DESCRIPTION, copyright date, etc.

Changes since v2:
  * Dequeue all pending transfers in terminate_all()
  * Rename dw_dmac.h -> dw_dmac_regs.h
  * Define and use controller-specific dma_slave data
  * Fix up a few outdated comments
  * Define hardware registers as structs (doesn't generate better
    code, unfortunately, but it looks nicer.)
  * Get number of channels from platform_data instead of hardcoding it
    based on CONFIG_WHATEVER_CPU.
  * Give slave clients exclusive access to the channel

Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com>,
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2008-07-08 11:59:42 -07:00
..
arch-at32ap dmaengine: Driver for the Synopsys DesignWare DMA controller 2008-07-08 11:59:42 -07:00
mach
a.out.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
addrspace.h
asm.h avr32: Use constants from sysreg.h in asm.h 2008-04-19 20:40:07 -04:00
atomic.h
auxvec.h
bitops.h
bug.h
bugs.h
byteorder.h avr32: Work around byteswap bug in gcc < 4.2 2008-03-10 13:32:33 +01:00
cache.h
cachectl.h
cacheflush.h [AVR32] Fix copy_to_user_page() breakage 2007-12-07 14:54:47 +01:00
checksum.h
cputime.h
current.h
delay.h Fix __const_udelay declaration and definition mismatches 2008-02-06 10:41:06 -08:00
device.h
div64.h
dma-mapping.h
dma.h
elf.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
emergency-restart.h
errno.h
fb.h
fcntl.h
futex.h
gpio.h
hardirq.h
hw_irq.h
io.h
ioctl.h
ioctls.h
ipcbuf.h
irq.h avr32: Delete mostly unused header asm/intc.h 2008-04-19 20:40:07 -04:00
irq_regs.h
irqflags.h
Kbuild
kdebug.h [AVR32] NMI debugging 2008-01-25 08:31:43 +01:00
kmap_types.h
kprobes.h
kvm.h kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
linkage.h
local.h
mman.h
mmu.h
mmu_context.h
module.h
msgbuf.h
mutex.h
namei.h
numnodes.h
ocd.h [AVR32] Enable debugging only when needed 2008-01-25 08:31:39 +01:00
page.h avr32: cleanup - use _AC macro to define PAGE_SIZE 2008-04-19 20:40:06 -04:00
param.h
pci.h
percpu.h
pgalloc.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgtable-2level.h
pgtable.h mm: introduce pte_special pte bit 2008-04-28 08:58:23 -07:00
poll.h
posix_types.h asm-*/posix_types.h: scrub __GLIBC__ 2008-02-08 09:22:34 -08:00
processor.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
ptrace.h [AVR32] Enable debugging only when needed 2008-01-25 08:31:39 +01:00
resource.h
scatterlist.h
sections.h
semaphore.h Generic semaphore implementation 2008-04-17 10:42:34 -04:00
sembuf.h
serial.h avr32: add include/asm-avr32/serial.h 2008-04-19 20:40:10 -04:00
setup.h remove __attribute_used__ 2008-01-28 23:21:18 +01:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h
stat.h
statfs.h
string.h
sysreg.h
system.h Add cmpxchg_local to avr32 2008-02-07 08:42:31 -08:00
termbits.h
termios.h
thread_info.h [AVR32] Enable debugging only when needed 2008-01-25 08:31:39 +01:00
timex.h read_current_timer() cleanups 2008-02-06 10:41:02 -08:00
tlb.h
tlbflush.h
topology.h
traps.h
types.h avr32: types: use <asm-generic/int-*.h> for the avr32 architecture 2008-05-02 16:18:20 -07:00
uaccess.h
ucontext.h
unaligned.h kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
unistd.h Fix timerfd breakage on avr32 2008-02-05 14:37:15 -08:00
user.h Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
xor.h add include/asm-avr32/xor.h 2008-04-19 20:40:09 -04:00