Lines Matching refs:rtd

331 			   struct audio_substream_data *rtd,
336 acp_pte_config(acp_mmio, rtd->dma_addr, rtd->num_of_pages,
337 rtd->pte_offset);
339 if (rtd->direction == SNDRV_PCM_STREAM_PLAYBACK) {
340 ch_acp_sysmem = rtd->ch1;
341 ch_acp_i2s = rtd->ch2;
343 ch_acp_i2s = rtd->ch1;
344 ch_acp_sysmem = rtd->ch2;
347 set_acp_sysmem_dma_descriptors(acp_mmio, rtd->size,
348 rtd->direction, rtd->pte_offset,
349 ch_acp_sysmem, rtd->sram_bank,
350 rtd->dma_dscr_idx_1, asic_type);
352 set_acp_to_i2s_dma_descriptors(acp_mmio, rtd->size,
353 rtd->direction, rtd->sram_bank,
354 rtd->destination, ch_acp_i2s,
355 rtd->dma_dscr_idx_2, asic_type);
851 struct audio_substream_data *rtd;
858 rtd = runtime->private_data;
860 if (WARN_ON(!rtd))
865 rtd->i2s_instance = pinfo->play_i2s_instance;
867 rtd->i2s_instance = pinfo->cap_i2s_instance;
868 rtd->capture_channel = pinfo->capture_channel;
875 switch (rtd->i2s_instance) {
887 switch (rtd->i2s_instance) {
902 switch (rtd->i2s_instance) {
904 rtd->pte_offset = ACP_ST_BT_PLAYBACK_PTE_OFFSET;
905 rtd->ch1 = SYSRAM_TO_ACP_BT_INSTANCE_CH_NUM;
906 rtd->ch2 = ACP_TO_I2S_DMA_BT_INSTANCE_CH_NUM;
907 rtd->sram_bank = ACP_SRAM_BANK_3_ADDRESS;
908 rtd->destination = TO_BLUETOOTH;
909 rtd->dma_dscr_idx_1 = PLAYBACK_START_DMA_DESCR_CH8;
910 rtd->dma_dscr_idx_2 = PLAYBACK_START_DMA_DESCR_CH9;
911 rtd->byte_cnt_high_reg_offset =
913 rtd->byte_cnt_low_reg_offset =
920 rtd->pte_offset = ACP_ST_PLAYBACK_PTE_OFFSET;
923 rtd->pte_offset = ACP_PLAYBACK_PTE_OFFSET;
925 rtd->ch1 = SYSRAM_TO_ACP_MICSP_INSTANCE_CH_NUM;
926 rtd->ch2 = ACP_TO_I2S_DMA_MICSP_INSTANCE_CH_NUM;
927 rtd->sram_bank = ACP_SRAM_BANK_1_ADDRESS;
928 rtd->destination = TO_ACP_I2S_2;
929 rtd->dma_dscr_idx_1 = PLAYBACK_START_DMA_DESCR_CH4;
930 rtd->dma_dscr_idx_2 = PLAYBACK_START_DMA_DESCR_CH5;
931 rtd->byte_cnt_high_reg_offset =
933 rtd->byte_cnt_low_reg_offset =
942 rtd->pte_offset = ACP_ST_PLAYBACK_PTE_OFFSET;
945 rtd->pte_offset = ACP_PLAYBACK_PTE_OFFSET;
947 rtd->ch1 = SYSRAM_TO_ACP_CH_NUM;
948 rtd->ch2 = ACP_TO_I2S_DMA_CH_NUM;
949 rtd->sram_bank = ACP_SRAM_BANK_1_ADDRESS;
950 rtd->destination = TO_ACP_I2S_1;
951 rtd->dma_dscr_idx_1 = PLAYBACK_START_DMA_DESCR_CH12;
952 rtd->dma_dscr_idx_2 = PLAYBACK_START_DMA_DESCR_CH13;
953 rtd->byte_cnt_high_reg_offset =
955 rtd->byte_cnt_low_reg_offset =
960 switch (rtd->i2s_instance) {
962 rtd->pte_offset = ACP_ST_BT_CAPTURE_PTE_OFFSET;
963 rtd->ch1 = I2S_TO_ACP_DMA_BT_INSTANCE_CH_NUM;
964 rtd->ch2 = ACP_TO_SYSRAM_BT_INSTANCE_CH_NUM;
965 rtd->sram_bank = ACP_SRAM_BANK_4_ADDRESS;
966 rtd->destination = FROM_BLUETOOTH;
967 rtd->dma_dscr_idx_1 = CAPTURE_START_DMA_DESCR_CH10;
968 rtd->dma_dscr_idx_2 = CAPTURE_START_DMA_DESCR_CH11;
969 rtd->byte_cnt_high_reg_offset =
971 rtd->byte_cnt_low_reg_offset =
973 rtd->dma_curr_dscr = mmACP_DMA_CUR_DSCR_11;
979 rtd->pte_offset = ACP_CAPTURE_PTE_OFFSET;
980 rtd->ch1 = I2S_TO_ACP_DMA_CH_NUM;
981 rtd->ch2 = ACP_TO_SYSRAM_CH_NUM;
984 rtd->pte_offset = ACP_ST_CAPTURE_PTE_OFFSET;
985 rtd->sram_bank = ACP_SRAM_BANK_2_ADDRESS;
988 rtd->pte_offset = ACP_CAPTURE_PTE_OFFSET;
989 rtd->sram_bank = ACP_SRAM_BANK_5_ADDRESS;
991 rtd->destination = FROM_ACP_I2S_1;
992 rtd->dma_dscr_idx_1 = CAPTURE_START_DMA_DESCR_CH14;
993 rtd->dma_dscr_idx_2 = CAPTURE_START_DMA_DESCR_CH15;
994 rtd->byte_cnt_high_reg_offset =
996 rtd->byte_cnt_low_reg_offset =
998 rtd->dma_curr_dscr = mmACP_DMA_CUR_DSCR_15;
1005 acp_set_sram_bank_state(rtd->acp_mmio, 0, true);
1007 rtd->dma_addr = runtime->dma_addr;
1008 rtd->order = get_order(size);
1011 rtd->size = size;
1012 rtd->num_of_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;
1013 rtd->direction = substream->stream;
1015 config_acp_dma(rtd->acp_mmio, rtd, adata->asic_type);
1019 static u64 acp_get_byte_count(struct audio_substream_data *rtd)
1023 byte_count.bcount.high = acp_reg_read(rtd->acp_mmio,
1024 rtd->byte_cnt_high_reg_offset);
1025 byte_count.bcount.low = acp_reg_read(rtd->acp_mmio,
1026 rtd->byte_cnt_low_reg_offset);
1040 struct audio_substream_data *rtd = runtime->private_data;
1043 if (!rtd)
1048 bytescount = acp_get_byte_count(rtd);
1049 if (bytescount >= rtd->bytescount)
1050 bytescount -= rtd->bytescount;
1054 dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr);
1055 if (dscr == rtd->dma_dscr_idx_1)
1066 bytescount = acp_get_byte_count(rtd);
1067 if (bytescount > rtd->bytescount)
1068 bytescount -= rtd->bytescount;
1089 struct audio_substream_data *rtd = runtime->private_data;
1092 if (!rtd)
1095 if (rtd->direction == SNDRV_PCM_STREAM_PLAYBACK) {
1096 ch_acp_sysmem = rtd->ch1;
1097 ch_acp_i2s = rtd->ch2;
1099 ch_acp_i2s = rtd->ch1;
1100 ch_acp_sysmem = rtd->ch2;
1102 config_acp_dma_channel(rtd->acp_mmio,
1104 rtd->dma_dscr_idx_1,
1106 config_acp_dma_channel(rtd->acp_mmio,
1108 rtd->dma_dscr_idx_2,
1119 struct audio_substream_data *rtd = runtime->private_data;
1121 if (!rtd)
1127 rtd->bytescount = acp_get_byte_count(rtd);
1129 if (rtd->capture_channel == CAP_CHANNEL0) {
1130 acp_dma_cap_channel_disable(rtd->acp_mmio,
1132 acp_dma_cap_channel_enable(rtd->acp_mmio,
1135 if (rtd->capture_channel == CAP_CHANNEL1) {
1136 acp_dma_cap_channel_disable(rtd->acp_mmio,
1138 acp_dma_cap_channel_enable(rtd->acp_mmio,
1141 acp_dma_start(rtd->acp_mmio, rtd->ch1, true);
1143 acp_dma_start(rtd->acp_mmio, rtd->ch1, true);
1144 acp_dma_start(rtd->acp_mmio, rtd->ch2, true);
1151 acp_dma_stop(rtd->acp_mmio, rtd->ch2);
1152 ret = acp_dma_stop(rtd->acp_mmio, rtd->ch1);
1161 struct snd_soc_pcm_runtime *rtd)
1168 snd_pcm_set_managed_buffer_all(rtd->pcm,
1175 snd_pcm_set_managed_buffer_all(rtd->pcm,
1190 struct audio_substream_data *rtd = runtime->private_data;
1194 switch (rtd->i2s_instance) {
1218 switch (rtd->i2s_instance) {
1242 kfree(rtd);
1341 struct audio_substream_data *rtd;
1361 rtd = adata->play_i2ssp_stream->runtime->private_data;
1362 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type);
1371 rtd = adata->capture_i2ssp_stream->runtime->private_data;
1372 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type);
1377 rtd = adata->play_i2s_micsp_stream->runtime->private_data;
1378 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type);
1382 rtd = adata->play_i2sbt_stream->runtime->private_data;
1383 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type);
1387 rtd = adata->capture_i2sbt_stream->runtime->private_data;
1388 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type);