static int rockchip_pcm_hw_free(struct snd_pcm_substream *substream) { struct rockchip_runtime_data *prtd = substream->runtime->private_data; DBG("Enter::%s----%d\n",__FUNCTION__,__LINE__); /* TODO - do we need to ensure DMA flushed */ snd_pcm_set_runtime_buffer(substream, NULL); if (prtd->params) { #ifdef CONFIG_SND_I2S_DMA_EVENT_DYNAMIC rk29_dma_free(prtd->params->channel, prtd->params->client); prtd->params = NULL; #endif } return 0; }
static void dma_exit(struct rk_mmc *host) { rk29_dma_free(MMC_DMA_CHN, NULL); }