Lines Matching refs:rtd

103 static void config_acp5x_dma(struct i2s_stream_instance *rtd, int direction)
110 addr = rtd->dma_addr;
112 switch (rtd->i2s_instance) {
121 switch (rtd->i2s_instance) {
131 acp_writel(ACP_SRAM_PTE_OFFSET | BIT(31), rtd->acp5x_base +
133 acp_writel(PAGE_SIZE_4K_ENABLE, rtd->acp5x_base +
136 for (page_idx = 0; page_idx < rtd->num_pages; page_idx++) {
141 acp_writel(low, rtd->acp5x_base + ACP_SCRATCH_REG_0 + val);
143 acp_writel(high, rtd->acp5x_base + ACP_SCRATCH_REG_0 + val + 4);
150 switch (rtd->i2s_instance) {
158 rtd->acp5x_base + ACP_HS_TX_RINGBUFADDR);
169 rtd->acp5x_base + ACP_I2S_TX_RINGBUFADDR);
172 switch (rtd->i2s_instance) {
180 rtd->acp5x_base + ACP_HS_RX_RINGBUFADDR);
191 rtd->acp5x_base + ACP_I2S_RX_RINGBUFADDR);
194 acp_writel(DMA_SIZE, rtd->acp5x_base + reg_dma_size);
195 acp_writel(acp_fifo_addr, rtd->acp5x_base + reg_fifo_addr);
196 acp_writel(FIFO_SIZE, rtd->acp5x_base + reg_fifo_size);
199 rtd->acp5x_base + ACP_EXTERNAL_INTR_CNTL);
241 struct i2s_stream_instance *rtd;
252 rtd = substream->runtime->private_data;
254 if (!rtd)
259 rtd->i2s_instance = pinfo->play_i2s_instance;
260 switch (rtd->i2s_instance) {
269 rtd->i2s_instance = pinfo->cap_i2s_instance;
270 switch (rtd->i2s_instance) {
284 rtd->dma_addr = substream->runtime->dma_addr;
285 rtd->num_pages = (PAGE_ALIGN(size) >> PAGE_SHIFT);
286 config_acp5x_dma(rtd, substream->stream);
293 struct i2s_stream_instance *rtd;
298 rtd = substream->runtime->private_data;
301 bytescount = acp_get_byte_count(rtd, substream->stream);
302 if (bytescount > rtd->bytescount)
303 bytescount -= rtd->bytescount;
309 struct snd_soc_pcm_runtime *rtd)
313 snd_pcm_set_managed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV,
426 struct i2s_stream_instance *rtd;
432 rtd = adata->play_stream->runtime->private_data;
433 config_acp5x_dma(rtd, SNDRV_PCM_STREAM_PLAYBACK);
434 acp_writel((rtd->xfer_resolution << 3), rtd->acp5x_base + ACP_HSTDM_ITER);
442 rtd = adata->i2ssp_play_stream->runtime->private_data;
443 config_acp5x_dma(rtd, SNDRV_PCM_STREAM_PLAYBACK);
444 acp_writel((rtd->xfer_resolution << 3), rtd->acp5x_base + ACP_I2STDM_ITER);
453 rtd = adata->capture_stream->runtime->private_data;
454 config_acp5x_dma(rtd, SNDRV_PCM_STREAM_CAPTURE);
455 acp_writel((rtd->xfer_resolution << 3), rtd->acp5x_base + ACP_HSTDM_IRER);
463 rtd = adata->i2ssp_capture_stream->runtime->private_data;
464 config_acp5x_dma(rtd, SNDRV_PCM_STREAM_CAPTURE);
465 acp_writel((rtd->xfer_resolution << 3), rtd->acp5x_base + ACP_I2STDM_IRER);