Re: Question about DMA

From: Francis Moreau
Date: Mon Jan 28 2008 - 03:56:19 EST


Hello Jiri,

On Jan 27, 2008 11:34 PM, Jiri Slaby <jirislaby@xxxxxxxxx> wrote:
> On 01/27/2008 09:51 PM, Francis Moreau wrote:
> > 1/ Why does the function take only one address ? I would expect it
> > to take both a source and a destination address for the dma controller
> > to transfer data.
>
> since your device is responsible for sending data from/to local memory. ISA dma
> controller has only 2 registers -- 16-bit address to put incoming data to (get
> outcoming from) + 8-bit nonincrementing page and 16-bit counter.
>
> > 2/ The type of address parameter is an unsigned int. Why isn't it a dma_addr_t
> > type ?
>
> since isa dma controller can address up to 2^24 (16-bit address + 8-bit page)
> bytes of memory, i.e. 16M.
>
> Are you sure, you want use this API?
>
>

No ;)

My DMA controller has very little in common with ISA DMA one. But I'd like to
use it in a driver. This driver can do DMA but with the help of an external DMA
controller. It's only implement the "slave" side. So basically this driver needs
to configure one of the DMAC channels before transfering data.

What other API could I use in this case ? I don't think the DMA-mapping can
help in this case...

Thanks
--
Francis
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/