Lines Matching refs:DMA

1                         DMA with ISA and LPC devices
6 This document describes how to do DMA transfers using the old ISA DMA
8 uses the same DMA system so it will be around for quite some time.
13 To do ISA style DMA you need to include two headers:
18 The first is the generic DMA API used to convert virtual addresses to
19 bus addresses (see Documentation/DMA-API.txt for details).
21 The second contains the routines specific to ISA DMA transfers. Since
29 The ISA DMA controller has some very strict requirements on which
33 (You usually need a special buffer for DMA transfers instead of
36 The DMA-able address space is the lowest 16 MB of _physical_ memory.
43 Unfortunately the memory available for ISA DMA is scarce so unless you
53 To translate the virtual address to a bus address, use the normal DMA
57 is really all you need. Remember that even though the DMA controller
60 Note: x86_64 had a broken DMA API when it came to ISA but has since
61 been fixed. If your arch has problems then fix the DMA API instead of
67 A normal ISA DMA controller has 8 channels. The lower four are for
70 (Actually the DMA controller is really two separate controllers where
71 channel 4 is used to give DMA access for the second controller (0-3).
86 Now for the good stuff, the actual DMA transfer. :)
88 Before you use any ISA DMA routines you need to claim the DMA lock
89 using claim_dma_lock(). The reason is that some DMA operations are
93 The first time you use the DMA controller you should call
94 clear_dma_ff(). This clears an internal register in the DMA
105 transfer. Note that it's _bytes_. The DMA routines will do all the
106 required translation to values that the DMA controller understands.
108 The final step is enabling the DMA channel and releasing the DMA
111 Once the DMA transfer is finished (or timed out) you should disable
139 printk(KERN_ERR "driver: Incomplete DMA transfer!"
148 suspended while a DMA transfer is in progress. Also, all DMA settings
149 are lost when the system suspends so if your driver relies on the DMA