[alsa-devel] asoc: fsl_dma_hw_free being called twice at end of playback

Timur Tabi timur at freescale.com
Mon May 3 22:51:04 CEST 2010


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:

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


More information about the Alsa-devel mailing list