[PATCH] dmaengine: Add Kconfig of DMA data align for DMA Test driver

From: Nobuhiro Iwamatsu
Date: Thu Mar 12 2009 - 02:31:00 EST


Test drivers of DMA engine usually perform DMA transfer by 1 byte unit.
This can set transfer size of DMA and aligns data for tests.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@xxxxxxxxxxx>
Cc: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx>
Cc: Maciej Sosnowski <maciej.sosnowski@xxxxxxxxx>
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
---
drivers/dma/Kconfig | 8 ++++++++
drivers/dma/dmatest.c | 7 +++++++
2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 48ea59e..7f9e1ec 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -105,4 +105,12 @@ config DMATEST
Simple DMA test client. Say N unless you're debugging a
DMA Device driver.

+config DMATEST_DATA_ALIGN
+ int "DMA Test data align size"
+ depends on DMATEST
+ default "1"
+ help
+ Test drivers of DMA engine usually perform DMA transfer by 1 byte unit.
+ This can set transfer size of DMA and aligns data for tests.
+
endif
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index 732fa1e..e7f273c 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -224,8 +224,15 @@ static int dmatest_func(void *data)
total_tests++;

len = dmatest_random() % test_buf_size + 1;
+#if CONFIG_DMATEST_DATA_ALIGN > 1
+ len -= (len % CONFIG_DMATEST_DATA_ALIGN);
+#endif
src_off = dmatest_random() % (test_buf_size - len + 1);
dst_off = dmatest_random() % (test_buf_size - len + 1);
+#if CONFIG_DMATEST_DATA_ALIGN > 1
+ src_off -= (src_off % CONFIG_DMATEST_DATA_ALIGN);
+ dst_off -= (dst_off % CONFIG_DMATEST_DATA_ALIGN);
+#endif

dmatest_init_srcbuf(thread->srcbuf, src_off, len);
dmatest_init_dstbuf(thread->dstbuf, dst_off, len);
--
1.6.2

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