Lines Matching refs:rtd

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