[PATCH 07/11] fsmc/nand: Provide contiguous buffers to dma
viresh.kumar at linaro.org
Tue Oct 9 13:41:25 EDT 2012
On Tue, Oct 9, 2012 at 4:14 PM, Vipin Kumar <vipin.kumar at st.com> wrote:
> diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c
> @@ -675,7 +676,8 @@ static void fsmc_read_buf_dma(struct mtd_info *mtd, uint8_t *buf, int len)
> struct fsmc_nand_data *host;
> host = container_of(mtd, struct fsmc_nand_data, mtd);
> - dma_xfer(host, buf, len, DMA_FROM_DEVICE);
> + dma_xfer(host, host->dma_buf, len, DMA_FROM_DEVICE);
> + memcpy(buf, (const void *)host->dma_buf, len);
Ahh.. Too much overhead. Can't you do something better here?
- DMA can be done to user buffers too, Pratyush has done some work in
past on this.
- There must be some other way of sharing kernel buffer to user space.
More information about the linux-arm-kernel