Messages in this thread | | | Date | Fri, 9 Jan 2009 17:39:56 -0700 | From | "Dan Williams" <> | Subject | Re: [PATCH] dmatest: flush and invalidate destination buffer before DMA |
| |
On Fri, Jan 9, 2009 at 1:30 AM, Atsushi Nemoto <anemo@mba.ocn.ne.jp> wrote: > Do you mean something like this?
Yes, exactly.
> > dmatest_init_srcbuf(thread->srcbuf, src_off, len); > dmatest_init_dstbuf(thread->dstbuf, dst_off, len); > > dma_src = dma_map_single(dev->dev, src + src_off, len, > DMA_TO_DEVICE); > dma_dest = dma_map_single(dev->dev, dest_buf, test_buf_size, > DMA_BIDIRECTIONAL); > tx = dev->device_prep_dma_memcpy(chan, dma_dest + dst_off, > dma_src, len, > DMA_CTRL_ACK | DMA_COMPL_SKIP_DEST_UNMAP); > if (!tx) { > /* error */ > } > tx->callback = NULL; > cookie = tx->tx_submit(tx); > ... > /* wait for completion */ > ... > dma_unmap_single(dev->dev, dma_dest, test_buf_size, > DMA_BIDIRECTIONAL); > > It will make dmatest more aggressive, for example, a option for > testing DMA_PREP_INTERRUPT handling of a lowlevel driver can be added > easily. >
Yes, and it will also allow testing of corner cases like dependency chains and other async_tx api driver-assumptions.
Thanks, Dan
| |