Messages in this thread | | | Date | Thu, 9 Jun 2011 12:24:33 +0530 | From | viresh kumar <> | Subject | Why move all map_sg/unmap_sg for slave channel to its client? |
| |
Hi,
I thought map_sg/unmap_sg for slave channels will be handled according to the flags passed in prep_slave_sg(). But then i found following patch:
commit 657a77fa7284d8ae28dfa48f1dc5d919bf5b2843 Author: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Date: Tue Sep 8 17:53:05 2009 -0700
dmaengine: Move all map_sg/unmap_sg for slave channel to its client
Dan Williams wrote: ... DMA-slave clients request specific channels and know the hardware details at a low level, so it should not be too high an expectation to push dma mapping responsibility to the client.
Also this patch includes DMA_COMPL_{SRC,DEST}_UNMAP_SINGLE support for dw_dmac driver. Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Dan Williams <dan.j.williams@intel.com> --- drivers/dma/at_hdmac.c | 43 +++++++++++++++++++++-------------------- drivers/dma/dw_dmac.c | 31 ++++++++++++++++++----------- drivers/mmc/host/atmel-mci.c | 9 +++++++- 3 files changed, 49 insertions(+), 34 deletions(-)
I don't have much knowledge about that discussion, but i think this should be left configurable. If the client wants to control map/unmap then it can simply pass DMA_COMPL_SKIP_DEST_UNMAP | DMA_COMPL_SKIP_SRC_UNMAP in flags. I didn't wanted to skip this in my driver and so i don't pass them.
Why to replicate similar code in client drivers if they need to unmap? What do you say?
-- viresh
| |