[alsa-devel] [PATCH 0/2] ASoC: davinci: ping-pong buffers for mcasp on da850evm

Ben Gardiner bengardiner at nanometrics.ca
Wed May 18 15:27:44 CEST 2011

davinci-i2s enables the use of ping-pong buffers by copying the sram sizes
specified by platform data into the dma params used by davinci-pcm.

This patch series first implements that same behaviour in davinic-mcasp
and then specified sram sizes and eventq's for da850evm.

To achieve the use of ping-pong buffers at runtime this patch depends also
on the conversion of da850's SRAM allocator to the "Share RAM" region from 
the "ARM Local RAM" region -- originally proposed by Subhasish Ghosh[1] and
recently reposted by myself [2].

This is because the "ARM Local RAM" region currently used by the da850 SRAM
allocator is not addressable by the EDMA. The resulting behaviour, when
ping-pong buffers are used by davinci-pcm, is that playback produces silence
and capture acquires silence.

However, there is no change in behaviour for da850evm build with the in-tree
defconfig since suspend allocates SRAM which prevents a successful allocation
of 8K by davinci-pcm and thus the behaviour falls back to the usual scheme.

In the case of da850evm builds where CONFIG_SUSPEND is not set, playback 
will produce silence and capture will acquire silence until such time as the
patches to change the da850 SRAM allocator to the "Shared RAM" region are 

[1] http://article.gmane.org/gmane.linux.kernel/1098928
[2] http://article.gmane.org/gmane.linux.ports.arm.kernel/117261

Ben Gardiner (2):
  ASoC: davinci-mcasp: enable ping-pong SRAM buffers
  davinci: da850evm: enable mcasp ping-pong buffers and eventq's

 arch/arm/mach-davinci/board-da850-evm.c |    5 ++++-
 sound/soc/davinci/davinci-mcasp.c       |    2 ++
 2 files changed, 6 insertions(+), 1 deletions(-)


More information about the Alsa-devel mailing list