| S3C2410 DMA |
| =========== |
| |
| Introduction |
| ------------ |
| |
| The kernel provides an interface to manage DMA transfers |
| using the DMA channels in the CPU, so that the central |
| duty of managing channel mappings, and programming the |
| channel generators is in one place. |
| |
| |
| DMA Channel Ordering |
| -------------------- |
| |
| Many of the range do not have connections for the DMA |
| channels to all sources, which means that some devices |
| have a restricted number of channels that can be used. |
| |
| To allow flexibility for each CPU type and board, the |
| DMA code can be given a DMA ordering structure which |
| allows the order of channel search to be specified, as |
| well as allowing the prohibition of certain claims. |
| |
| struct s3c24xx_dma_order has a list of channels, and |
| each channel within has a slot for a list of DMA |
| channel numbers. The slots are searched in order for |
| the presence of a DMA channel number with DMA_CH_VALID |
| or-ed in. |
| |
| If the order has the flag DMA_CH_NEVER set, then after |
| checking the channel list, the system will return no |
| found channel, thus denying the request. |
| |
| A board support file can call s3c24xx_dma_order_set() |
| to register a complete ordering set. The routine will |
| copy the data, so the original can be discarded with |
| __initdata. |
| |
| |
| Authour |
| ------- |
| |
| Ben Dooks, |
| Copyright (c) 2007 Ben Dooks, Simtec Electronics |
| Licensed under the GPL v2 |