2009-03-12 06:31:01

by Nobuhiro Iwamatsu

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

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 <[email protected]>
Cc: Haavard Skinnemoen <[email protected]>
Cc: Maciej Sosnowski <[email protected]>
Cc: Dan Williams <[email protected]>
---
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


2009-03-16 22:03:00

by Dan Williams

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: Add Kconfig of DMA data align for DMA Test driver

On Wed, Mar 11, 2009 at 11:30 PM, Nobuhiro Iwamatsu
<[email protected]> wrote:
> 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 <[email protected]>
> Cc: Haavard Skinnemoen <[email protected]>
> Cc: Maciej Sosnowski <[email protected]>
> Cc: Dan Williams <[email protected]>
> ---

This should just be a module parameter, and it needs error handling
for the alignment > transfer length case.

Thanks,
Dan

2009-03-18 12:10:30

by Sosnowski, Maciej

[permalink] [raw]
Subject: RE: [PATCH] dmaengine: Add Kconfig of DMA data align for DMA Test driver

Dan Williams wrote:
> On Wed, Mar 11, 2009 at 11:30 PM, Nobuhiro Iwamatsu
> <[email protected]> wrote:
>> 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 <[email protected]>
>> Cc: Haavard Skinnemoen <[email protected]>
>> Cc: Maciej Sosnowski <[email protected]>
>> Cc: Dan Williams <[email protected]>
>> ---
>
> This should just be a module parameter, and it needs error handling
> for the alignment > transfer length case.
>
> Thanks,
> Dan

I agree with Dan. Align size should be rather module parameter.

Regards,
Maciej-