
Hi Mark,
On Thu, Dec 5, 2013 at 5:15 PM, Mark Brown broonie@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@kernel.org wrote:
OK, so we can probably just reinitialise the dmaengine data after we reset it? Like below
Yes. That works well.
Great.
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@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.
Thanks Padma