• Russell King's avatar
    DMA: sa11x0: add SA-11x0 DMA driver · 6365bead
    Russell King authored
    Add support for the SA-11x0 DMA driver, which replaces the private
    API version in arch/arm/mach-sa1100/dma.c.
    
    We model this as a set of virtual DMA channels, one for each request
    signal, and assign the virtual DMA channel to a physical DMA channel
    when there is work to be done.  This allows DMA users to claim their
    channels, and hold them while not in use, without affecting the
    availability of the physical channels.
    
    Another advantage over this approach, compared to the private version,
    is that a channel can be reconfigured on the fly without having to
    release and re-request it - which for the IrDA driver, allows us to
    use DMA for SIR mode transmit without eating up three physical
    channels.  As IrDA is half-duplex, we actually only need one physical
    channel, and this architecture allows us to achieve that.
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    6365bead
sa11x0-dma.c 26.8 KB