[alsa-devel] [PATCH 2/2] ASoC: samsung: Use ASoC dmaengine code where possible
padma.kvr at gmail.com
Mon Dec 9 18:52:39 CET 2013
On Thu, Dec 5, 2013 at 5:15 PM, Mark Brown <broonie at kernel.org> wrote:
> On Thu, Dec 05, 2013 at 04:20:03PM +0530, Padma Venkat wrote:
>> On Thu, Nov 28, 2013 at 5:23 PM, Mark Brown <broonie at kernel.org> wrote:
>> > OK, so we can probably just reinitialise the dmaengine data after we
>> > reset it? Like below
>> Yes. That works well.
>> As I forgot to add SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag, I was
>> getting underrun error. After adding this flag audio playback is
>> working fine for smaller files on smdk5420 with pl330 dma driver.
> OK, there were some patches on the thread adding residue support to the
> PL330 driver yesterday - hopefully those can get merged at some point
>> Except for the crash due to NULL pointer dereference in secondary
>> dai(I posted a patch for the same (ASoC: samsung: Initialize the
>> dma_data for secondary dai)) you can add my
>> Tested By: Padmavathi Venna <padma.v at samsung.com>
> Excellent, thanks - I'd squashed in your change already. Like I say I'm
> still concerned that we might need a fix for v3.13 since I can't
> entirely see why the code works as-is.
Here two things
1)crash due to null pointer reference during boot which got fixed by
initializing the secondary dai.
This crash was not there in mainline because the channel request
happening at runtime and with dmaengine the channel request happening
at boot time. But if some one try to play audio with secondary device
then at run time this crash might happen.
2) overwritting of dma_size during hw_params
This is not required in mainline because pointer to the whole
s3c_dma_params were being passed as dma_data which has dma_size init.
But with dmaengine we are just passing the pointer to
snd_dmaengine_dai_dma_data which is embedded in s3c_dma_params and
dma_size is outside.
I think this is what you are concern about why it is not working as-is.
More information about the Alsa-devel