Lines Matching full:rtd
109 static void config_acp3x_dma(struct i2s_stream_instance *rtd, int direction) in config_acp3x_dma() argument
116 addr = rtd->dma_addr; in config_acp3x_dma()
119 switch (rtd->i2s_instance) { in config_acp3x_dma()
128 switch (rtd->i2s_instance) { in config_acp3x_dma()
138 rv_writel(ACP_SRAM_PTE_OFFSET | BIT(31), rtd->acp3x_base + in config_acp3x_dma()
140 rv_writel(PAGE_SIZE_4K_ENABLE, rtd->acp3x_base + in config_acp3x_dma()
143 for (page_idx = 0; page_idx < rtd->num_pages; page_idx++) { in config_acp3x_dma()
148 rv_writel(low, rtd->acp3x_base + mmACP_SCRATCH_REG_0 + val); in config_acp3x_dma()
150 rv_writel(high, rtd->acp3x_base + mmACP_SCRATCH_REG_0 + val in config_acp3x_dma()
158 switch (rtd->i2s_instance) { in config_acp3x_dma()
166 rtd->acp3x_base + mmACP_BT_TX_RINGBUFADDR); in config_acp3x_dma()
177 rtd->acp3x_base + mmACP_I2S_TX_RINGBUFADDR); in config_acp3x_dma()
180 switch (rtd->i2s_instance) { in config_acp3x_dma()
188 rtd->acp3x_base + mmACP_BT_RX_RINGBUFADDR); in config_acp3x_dma()
199 rtd->acp3x_base + mmACP_I2S_RX_RINGBUFADDR); in config_acp3x_dma()
202 rv_writel(DMA_SIZE, rtd->acp3x_base + reg_dma_size); in config_acp3x_dma()
203 rv_writel(acp_fifo_addr, rtd->acp3x_base + reg_fifo_addr); in config_acp3x_dma()
204 rv_writel(FIFO_SIZE, rtd->acp3x_base + reg_fifo_size); in config_acp3x_dma()
207 rtd->acp3x_base + mmACP_EXTERNAL_INTR_CNTL); in config_acp3x_dma()
250 struct i2s_stream_instance *rtd; in acp3x_dma_hw_params() local
261 rtd = substream->runtime->private_data; in acp3x_dma_hw_params()
262 if (!rtd) in acp3x_dma_hw_params()
267 rtd->i2s_instance = pinfo->play_i2s_instance; in acp3x_dma_hw_params()
268 switch (rtd->i2s_instance) { in acp3x_dma_hw_params()
277 rtd->i2s_instance = pinfo->cap_i2s_instance; in acp3x_dma_hw_params()
278 switch (rtd->i2s_instance) { in acp3x_dma_hw_params()
291 rtd->dma_addr = substream->runtime->dma_addr; in acp3x_dma_hw_params()
292 rtd->num_pages = (PAGE_ALIGN(size) >> PAGE_SHIFT); in acp3x_dma_hw_params()
293 config_acp3x_dma(rtd, substream->stream); in acp3x_dma_hw_params()
300 struct i2s_stream_instance *rtd; in acp3x_dma_pointer() local
305 rtd = substream->runtime->private_data; in acp3x_dma_pointer()
309 bytescount = acp_get_byte_count(rtd, substream->stream); in acp3x_dma_pointer()
310 if (bytescount > rtd->bytescount) in acp3x_dma_pointer()
311 bytescount -= rtd->bytescount; in acp3x_dma_pointer()
317 struct snd_soc_pcm_runtime *rtd) in acp3x_dma_new() argument
320 snd_pcm_set_managed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV, in acp3x_dma_new()
453 struct i2s_stream_instance *rtd = in acp3x_resume() local
455 config_acp3x_dma(rtd, SNDRV_PCM_STREAM_PLAYBACK); in acp3x_resume()
456 switch (rtd->i2s_instance) { in acp3x_resume()
466 rv_writel((rtd->xfer_resolution << 3), in acp3x_resume()
467 rtd->acp3x_base + reg_val); in acp3x_resume()
470 struct i2s_stream_instance *rtd = in acp3x_resume() local
472 config_acp3x_dma(rtd, SNDRV_PCM_STREAM_CAPTURE); in acp3x_resume()
473 switch (rtd->i2s_instance) { in acp3x_resume()
483 rv_writel((rtd->xfer_resolution << 3), in acp3x_resume()
484 rtd->acp3x_base + reg_val); in acp3x_resume()