Re: [PATCH] dmaengine: at_hdmac: add DMA slave transfers

From: Atsushi Nemoto
Date: Wed Jul 29 2009 - 11:21:41 EST


On Wed, 29 Jul 2009 14:05:17 +0100, "Sosnowski, Maciej" <maciej.sosnowski@xxxxxxxxx> wrote:
> Atsushi Nemoto wrote:
> > On Mon, 27 Jul 2009 14:24:26 +0100, "Sosnowski, Maciej" <maciej.sosnowski@xxxxxxxxx> wrote:
> >>>> Your atc_chain_complete() calls dma_unmap_xxx unless
> >>>> DMA_COMPL_SKIP_XXX_UNMAP specified. But atmel-mci driver does not set
> >>>> the flag on dma_async_tx_descriptor. I suppose one of them should be
> >>>> fixed.
> >>>
> >>> atmel-mci should definitely set that flag.
> >>>
> >>> Haavard
> >>
> >> I agree with Haavard.
> >
> > Then, what should dma driver do when client driver did not set these
> > flags? If it should call dma_unmap_sg(), the dma driver should keep
> > sg and direction somewhere...
>
> Well, what about BUG_ON?

Or prep_slave_sg can preset both DMA_COMPL_SKIP_XXX_UNMAP flags, or do
not unmap in dma driver for slave channel. I suppose latter is safe
and simple.

> > Also, calling dma_map_sg() in its prep_slave_sg function will not fit
> > for sound drivers, which use DMA buffers prepared in its framework.
>
> It looks like a need for one more flag: DMA_SKIP_MAP_SG.
> What do you think?

I do not think it is worth to introduce new flag.

As Dan said, pushing dma mapping responsibility to the client looks
simple and clean way for me.

---
Atsushi Nemoto
--
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/