On 3 May 2010, at 21:51, Timur Tabi timur@freescale.com wrote:
In my 8610 ASoC driver, I'm seeing the DMA driver's .hw_free function being called twice whenever playback ends. I've added some printk's to demonstrate:
Is this with or without Liam's multiple CODEC work?
snd_pcm_common_ioctl1:2543 snd_pcm_hw_free:543 soc_pcm_hw_free:761 c023983c fsl_dma_hw_free:720 substream=df029d00 dma_private=df440000 stream=0 snd_pcm_release_substream:2022 soc_pcm_hw_free:761 c023983c fsl_dma_hw_free:720 substream=df029d00 dma_private=df440000 stream=0 fsl_dma_close:759 substream=df029d00 dma_private=df440000
So the ioctl is being called only once, but the both snd_pcm_hw_free () and snd_pcm_release_substream() are calling the .hw_free function.
Is this normal? I don't know how to handle this, other than to add some boolean to my private data structure that indicates whether the resources have been freed or not.
-- Timur Tabi Linux kernel developer at Freescale