2007-02-13 13:02:52 +01:00
S3C2410 DMA
===========
Introduction
------------
The kernel provides an interface to manage DMA transfers
2007-10-20 01:34:40 +02:00
using the DMA channels in the CPU, so that the central
2007-02-13 13:02:52 +01:00
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.
2007-10-20 01:34:40 +02:00
To allow flexibility for each CPU type and board, the
DMA code can be given a DMA ordering structure which
2007-02-13 13:02:52 +01:00
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
2007-10-20 01:34:40 +02:00
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.
2007-02-13 13:02:52 +01:00
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()
2007-10-20 01:34:40 +02:00
to register a complete ordering set. The routine will
copy the data, so the original can be discarded with
2007-02-13 13:02:52 +01:00
__initdata.
Authour
-------
Ben Dooks,
Copyright (c) 2007 Ben Dooks, Simtec Electronics
Licensed under the GPL v2