static int sunxi_pcm_close(struct snd_pcm_substream *substream) { if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { snd_dmaengine_pcm_close(substream); } else { snd_dmaengine_pcm_close(substream); } return 0; }
/** * snd_dmaengine_pcm_release_chan_close - Close a dmaengine based PCM substream and release channel * @substream: PCM substream * * Releases the DMA channel associated with the PCM substream. */ int snd_dmaengine_pcm_close_release_chan(struct snd_pcm_substream *substream) { struct dmaengine_pcm_runtime_data *prtd = substream_to_prtd(substream); dma_release_channel(prtd->dma_chan); return snd_dmaengine_pcm_close(substream); }
static int ux500_pcm_close(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *dai = rtd->cpu_dai; dev_dbg(dai->dev, "%s: Enter\n", __func__); snd_dmaengine_pcm_close(substream); return 0; }
static int sunxi_pcm_close(struct snd_pcm_substream *substream) { snd_dmaengine_pcm_close(substream); return 0; }