Lines Matching refs:rtd

176 static void config_acp_dma(struct pdm_stream_instance *rtd, int direction)
182 addr = rtd->dma_addr;
186 rn_writel(ACP_SRAM_PTE_OFFSET | BIT(31), rtd->acp_base +
188 rn_writel(PAGE_SIZE_4K_ENABLE, rtd->acp_base +
191 for (page_idx = 0; page_idx < rtd->num_pages; page_idx++) {
196 rn_writel(low, rtd->acp_base + ACP_SCRATCH_REG_0 + val);
198 rn_writel(high, rtd->acp_base + ACP_SCRATCH_REG_0 + val + 4);
243 struct pdm_stream_instance *rtd;
246 rtd = substream->runtime->private_data;
247 if (!rtd)
251 rtd->dma_addr = substream->runtime->dma_addr;
252 rtd->num_pages = (PAGE_ALIGN(size) >> PAGE_SHIFT);
253 config_acp_dma(rtd, substream->stream);
255 rtd->acp_base);
259 static u64 acp_pdm_get_byte_count(struct pdm_stream_instance *rtd,
265 rn_readl(rtd->acp_base +
268 rn_readl(rtd->acp_base +
276 struct pdm_stream_instance *rtd;
280 rtd = stream->runtime->private_data;
283 bytescount = acp_pdm_get_byte_count(rtd, stream->stream);
284 if (bytescount > rtd->bytescount)
285 bytescount -= rtd->bytescount;
291 struct snd_soc_pcm_runtime *rtd)
295 snd_pcm_set_managed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV,
320 struct pdm_stream_instance *rtd;
325 rtd = substream->runtime->private_data;
338 rn_writel(ch_mask, rtd->acp_base + ACP_WOV_PDM_NO_OF_CHANNELS);
339 rn_writel(PDM_DECIMATION_FACTOR, rtd->acp_base +
341 rtd->bytescount = acp_pdm_get_byte_count(rtd,
343 pdm_status = check_pdm_dma_status(rtd->acp_base);
345 ret = start_pdm_dma(rtd->acp_base);
350 pdm_status = check_pdm_dma_status(rtd->acp_base);
352 ret = stop_pdm_dma(rtd->acp_base);
457 struct pdm_stream_instance *rtd;
463 rtd = runtime->private_data;
466 config_acp_dma(rtd, SNDRV_PCM_STREAM_CAPTURE);