----- Original Message ----- From: "Tony Lindgren" <[EMAIL PROTECTED]>
To: "shekhar, chandra" <[EMAIL PROTECTED]>
Cc: "Jarkko Nikula" <[EMAIL PROTECTED]>; <linux-omap@vger.kernel.org>
Sent: Tuesday, September 09, 2008 10:01 PM
Subject: Re: [PATCH 1/2] McBSP DMA support for 34xx


* shekhar, chandra <[EMAIL PROTECTED]> [080828 04:21]:

----- Original Message ----- From: "Jarkko Nikula"
<[EMAIL PROTECTED]>
To: "ext chandra shekhar" <[EMAIL PROTECTED]>
Cc: <linux-omap@vger.kernel.org>
Sent: Thursday, August 28, 2008 4:22 PM
Subject: Re: [PATCH 1/2] McBSP DMA support for 34xx


On Thu, 28 Aug 2008 13:56:00 +0530 (IST)
"ext chandra shekhar" <[EMAIL PROTECTED]> wrote:

This patch supports DMA chaining mode and one time configuration for
entire transfer to improve performance.
Signed-off-by: chandra shekhar <[EMAIL PROTECTED]>
---
 arch/arm/mach-omap2/mcbsp.c       |  702 ++++++++++++++++++++++++++++
+++++++++- arch/arm/plat-omap/mcbsp.c        |   19 -
 include/asm-arm/arch-omap/mcbsp.h |  127 +++++-
 3 files changed, 811 insertions(+), 37 deletions(-)

Hi

What's the expected use case for DMA chaining mode or existing driver
which would get improved performance? There should have some reason why
this amount of new lines should be added.

current McBSP ( arch/arm/plat-omap/mcbsp.c) code request and releases dma
channel for each transfer .
so there is latency involved. Chaining help with smooth audio play
because we can enque the buffer
while another transfer is ongoing.

But the omap ASoC does already circular dma that automatically loops back
to the beginning of fifo as long as there's data. How would the chaining help
with this?

Maybe update your codec to work with omap ASoC and see if you still
need chaining?


Yes, Codec driver can be modified to adapt OMAP ASoC.
but there are some additional features.

1> 16/24 bit mono and stereo data transfer
2>  Separate Rx and Tx path, enable only respective path.
3>  data transfer in 8,16,32 bit mode

Most importantly,
4> McBSP buffer ( To save power, for 34xx).
OMAP3430 McBSP interface 2 has 5k buffer for audio. handling of this buffer should be specific to McBSP.

Apart from that this is a generic McBSP code which will not interrupt the ASoC functionality.

In OMAP ASoC code the channel is linked to itself , i am not sure about latency in that case, but if DMA channels are available
we can use chaining of two channels in ASoC. this might reduce latency.







Also ideally this should cover also OMAP1's from 16xx onward since they
can link DMA channels together as well?

Current code might even work for 16xx and later versions for 16 bit data.
( or can be extended to work on 16xx and later versions)
but i dont have board or TRM to check for any changes in DMA subsytem or
McBSP. better to play safe.

2430 onwards McBSP dxr/drr is 32 bits, which allows 24 bit mono/stereo
transfer easily. if we had to have 16 bit dxr1,2/drr1,2
then we will have to perform the manipulation on data for 24 bit ops. we
will have to consider all the options before extending it to 16xx.



Jarkko


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to