At Sun, 21 Dec 2008 15:08:21 +0530, naveenkrishna.ch wrote:
On Sun, Dec 21, 2008 at 3:06 PM, Jarkko Nikula jhnikula@gmail.com wrote:
On Sun, Dec 21, 2008 at 9:22 AM, naveenkrishna. ch < naveenkrishna.ch@gmail.com> wrote:
Hi ALSA SOC,
I am using a OMAP3 + TWL4030 combination with ASoC
in the sound/soc/omap/omap-pcm.c DMA channels are being freed after unlinking in the omap_pcm_hw_free function
Which is causing a crash during applications So, stopping the DMA channels before unlinking resolves the issue.
here is the patch that solves the issue
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index e9084fd..679e384 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c @@ -116,6 +116,7 @@ static int omap_pcm_hw_free(struct snd_pcm_substream *substream) if (prtd->dma_data == NULL) return 0;
omap_stop_dma(prtd->dma_ch); if (!cpu_is_omap1510()) omap_dma_unlink_lch(prtd->dma_ch, prtd->dma_ch); omap_free_dma(prtd->dma_ch);
Is this ok or is there any better way out
This looks a bit familiar, I hope so. Is this from linux-omap, mainline or in-house kernel?
This is what i have seen in the alsa-kernel
Check sound git tree. git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
Takashi