Lines Matching +full:device +full:- +full:sram
1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright 2014-2015 Advanced Micro Devices, Inc.
129 * Configure a given dma channel parameters - enable/disable,
159 /* Initialize a dma descriptor in SRAM based on descriptor information passed */
170 acp_reg_write(descr_info->src, acp_mmio, mmACP_SRBM_Targ_Idx_Data); in config_dma_descriptor_in_sram()
173 acp_reg_write(descr_info->dest, acp_mmio, mmACP_SRBM_Targ_Idx_Data); in config_dma_descriptor_in_sram()
177 acp_reg_write(descr_info->xfer_val, acp_mmio, mmACP_SRBM_Targ_Idx_Data); in config_dma_descriptor_in_sram()
200 * system memory <-> ACP SRAM
252 dma_dscr_idx - 1, in set_acp_sysmem_dma_descriptors()
259 * ACP SRAM <-> I2S
292 config_acp_dma_channel(acp_mmio, ch, dma_dscr_idx - 1, in set_acp_to_i2s_dma_descriptors()
297 /* Create page table entries in ACP SRAM for the allocated memory */
308 /* Load the low address of page int ACP SRAM through SRBM */ in acp_pte_config()
317 /* Load the High address of page int ACP SRAM through SRBM */ in acp_pte_config()
336 acp_pte_config(acp_mmio, rtd->dma_addr, rtd->num_of_pages, in config_acp_dma()
337 rtd->pte_offset); in config_acp_dma()
339 if (rtd->direction == SNDRV_PCM_STREAM_PLAYBACK) { in config_acp_dma()
340 ch_acp_sysmem = rtd->ch1; in config_acp_dma()
341 ch_acp_i2s = rtd->ch2; in config_acp_dma()
343 ch_acp_i2s = rtd->ch1; in config_acp_dma()
344 ch_acp_sysmem = rtd->ch2; in config_acp_dma()
346 /* Configure System memory <-> ACP SRAM DMA descriptors */ in config_acp_dma()
347 set_acp_sysmem_dma_descriptors(acp_mmio, rtd->size, in config_acp_dma()
348 rtd->direction, rtd->pte_offset, in config_acp_dma()
349 ch_acp_sysmem, rtd->sram_bank, in config_acp_dma()
350 rtd->dma_dscr_idx_1, asic_type); in config_acp_dma()
351 /* Configure ACP SRAM <-> I2S DMA descriptors */ in config_acp_dma()
352 set_acp_to_i2s_dma_descriptors(acp_mmio, rtd->size, in config_acp_dma()
353 rtd->direction, rtd->sram_bank, in config_acp_dma()
354 rtd->destination, ch_acp_i2s, in config_acp_dma()
355 rtd->dma_dscr_idx_2, asic_type); in config_acp_dma()
443 /* enable for ACP to SRAM DMA channel */ in acp_dma_start()
494 if (--count == 0) { in acp_dma_stop()
496 return -ETIMEDOUT; in acp_dma_stop()
515 bank -= 32; in acp_set_sram_bank_state()
542 if (!loops--) { in acp_set_sram_bank_state()
543 pr_err("ACP SRAM bank %d state change failed\n", bank); in acp_set_sram_bank_state()
568 if (--count == 0) { in acp_init()
570 return -ETIMEDOUT; in acp_init()
586 if (--count == 0) { in acp_init()
588 return -ETIMEDOUT; in acp_init()
624 /* Num of descriptors in SRAM 0x4, means 256 descriptors;(64 * 4) */ in acp_init()
630 * When ACP_TILE_P1 is turned on, all SRAM banks get turned on. in acp_init()
633 * For Stoney, Memory gating is disabled,i.e SRAM Banks in acp_init()
634 * won't be turned off. The default state for SRAM banks is ON. in acp_init()
635 * Setting SRAM bank state code skipped for STONEY platform. in acp_init()
662 if (--count == 0) { in acp_deinit()
664 return -ETIMEDOUT; in acp_deinit()
679 if (--count == 0) { in acp_deinit()
681 return -ETIMEDOUT; in acp_deinit()
695 struct device *dev = arg; in dma_irq_handler()
699 acp_mmio = irq_data->acp_mmio; in dma_irq_handler()
708 snd_pcm_period_elapsed(irq_data->play_i2ssp_stream); in dma_irq_handler()
715 snd_pcm_period_elapsed(irq_data->play_i2sbt_stream); in dma_irq_handler()
732 snd_pcm_period_elapsed(irq_data->capture_i2ssp_stream); in dma_irq_handler()
750 snd_pcm_period_elapsed(irq_data->capture_i2sbt_stream); in dma_irq_handler()
767 struct snd_pcm_runtime *runtime = substream->runtime; in acp_dma_open()
768 struct audio_drv_data *intr_data = dev_get_drvdata(component->dev); in acp_dma_open()
772 return -ENOMEM; in acp_dma_open()
774 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { in acp_dma_open()
775 switch (intr_data->asic_type) { in acp_dma_open()
777 runtime->hw = acp_st_pcm_hardware_playback; in acp_dma_open()
780 runtime->hw = acp_pcm_hardware_playback; in acp_dma_open()
783 switch (intr_data->asic_type) { in acp_dma_open()
785 runtime->hw = acp_st_pcm_hardware_capture; in acp_dma_open()
788 runtime->hw = acp_pcm_hardware_capture; in acp_dma_open()
795 dev_err(component->dev, "set integer constraint failed\n"); in acp_dma_open()
800 adata->acp_mmio = intr_data->acp_mmio; in acp_dma_open()
801 runtime->private_data = adata; in acp_dma_open()
809 if (!intr_data->play_i2ssp_stream && !intr_data->capture_i2ssp_stream && in acp_dma_open()
810 !intr_data->play_i2sbt_stream && !intr_data->capture_i2sbt_stream) in acp_dma_open()
811 acp_reg_write(1, adata->acp_mmio, mmACP_EXTERNAL_INTR_ENB); in acp_dma_open()
813 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { in acp_dma_open()
815 * For Stoney, Memory gating is disabled,i.e SRAM Banks in acp_dma_open()
816 * won't be turned off. The default state for SRAM banks is ON. in acp_dma_open()
817 * Setting SRAM bank state code skipped for STONEY platform. in acp_dma_open()
819 if (intr_data->asic_type != CHIP_STONEY) { in acp_dma_open()
821 acp_set_sram_bank_state(intr_data->acp_mmio, in acp_dma_open()
825 if (intr_data->asic_type != CHIP_STONEY) { in acp_dma_open()
827 acp_set_sram_bank_state(intr_data->acp_mmio, in acp_dma_open()
844 struct audio_drv_data *adata = dev_get_drvdata(component->dev); in acp_dma_hw_params()
845 struct snd_soc_card *card = prtd->card; in acp_dma_hw_params()
848 runtime = substream->runtime; in acp_dma_hw_params()
849 rtd = runtime->private_data; in acp_dma_hw_params()
852 return -EINVAL; in acp_dma_hw_params()
855 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { in acp_dma_hw_params()
856 rtd->i2s_instance = pinfo->play_i2s_instance; in acp_dma_hw_params()
858 rtd->i2s_instance = pinfo->cap_i2s_instance; in acp_dma_hw_params()
859 rtd->capture_channel = pinfo->capture_channel; in acp_dma_hw_params()
862 if (adata->asic_type == CHIP_STONEY) { in acp_dma_hw_params()
863 val = acp_reg_read(adata->acp_mmio, in acp_dma_hw_params()
865 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { in acp_dma_hw_params()
866 switch (rtd->i2s_instance) { in acp_dma_hw_params()
875 switch (rtd->i2s_instance) { in acp_dma_hw_params()
884 acp_reg_write(val, adata->acp_mmio, in acp_dma_hw_params()
888 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { in acp_dma_hw_params()
889 switch (rtd->i2s_instance) { in acp_dma_hw_params()
891 rtd->pte_offset = ACP_ST_BT_PLAYBACK_PTE_OFFSET; in acp_dma_hw_params()
892 rtd->ch1 = SYSRAM_TO_ACP_BT_INSTANCE_CH_NUM; in acp_dma_hw_params()
893 rtd->ch2 = ACP_TO_I2S_DMA_BT_INSTANCE_CH_NUM; in acp_dma_hw_params()
894 rtd->sram_bank = ACP_SRAM_BANK_3_ADDRESS; in acp_dma_hw_params()
895 rtd->destination = TO_BLUETOOTH; in acp_dma_hw_params()
896 rtd->dma_dscr_idx_1 = PLAYBACK_START_DMA_DESCR_CH8; in acp_dma_hw_params()
897 rtd->dma_dscr_idx_2 = PLAYBACK_START_DMA_DESCR_CH9; in acp_dma_hw_params()
898 rtd->byte_cnt_high_reg_offset = in acp_dma_hw_params()
900 rtd->byte_cnt_low_reg_offset = in acp_dma_hw_params()
902 adata->play_i2sbt_stream = substream; in acp_dma_hw_params()
906 switch (adata->asic_type) { in acp_dma_hw_params()
908 rtd->pte_offset = ACP_ST_PLAYBACK_PTE_OFFSET; in acp_dma_hw_params()
911 rtd->pte_offset = ACP_PLAYBACK_PTE_OFFSET; in acp_dma_hw_params()
913 rtd->ch1 = SYSRAM_TO_ACP_CH_NUM; in acp_dma_hw_params()
914 rtd->ch2 = ACP_TO_I2S_DMA_CH_NUM; in acp_dma_hw_params()
915 rtd->sram_bank = ACP_SRAM_BANK_1_ADDRESS; in acp_dma_hw_params()
916 rtd->destination = TO_ACP_I2S_1; in acp_dma_hw_params()
917 rtd->dma_dscr_idx_1 = PLAYBACK_START_DMA_DESCR_CH12; in acp_dma_hw_params()
918 rtd->dma_dscr_idx_2 = PLAYBACK_START_DMA_DESCR_CH13; in acp_dma_hw_params()
919 rtd->byte_cnt_high_reg_offset = in acp_dma_hw_params()
921 rtd->byte_cnt_low_reg_offset = in acp_dma_hw_params()
923 adata->play_i2ssp_stream = substream; in acp_dma_hw_params()
926 switch (rtd->i2s_instance) { in acp_dma_hw_params()
928 rtd->pte_offset = ACP_ST_BT_CAPTURE_PTE_OFFSET; in acp_dma_hw_params()
929 rtd->ch1 = I2S_TO_ACP_DMA_BT_INSTANCE_CH_NUM; in acp_dma_hw_params()
930 rtd->ch2 = ACP_TO_SYSRAM_BT_INSTANCE_CH_NUM; in acp_dma_hw_params()
931 rtd->sram_bank = ACP_SRAM_BANK_4_ADDRESS; in acp_dma_hw_params()
932 rtd->destination = FROM_BLUETOOTH; in acp_dma_hw_params()
933 rtd->dma_dscr_idx_1 = CAPTURE_START_DMA_DESCR_CH10; in acp_dma_hw_params()
934 rtd->dma_dscr_idx_2 = CAPTURE_START_DMA_DESCR_CH11; in acp_dma_hw_params()
935 rtd->byte_cnt_high_reg_offset = in acp_dma_hw_params()
937 rtd->byte_cnt_low_reg_offset = in acp_dma_hw_params()
939 rtd->dma_curr_dscr = mmACP_DMA_CUR_DSCR_11; in acp_dma_hw_params()
940 adata->capture_i2sbt_stream = substream; in acp_dma_hw_params()
944 rtd->pte_offset = ACP_CAPTURE_PTE_OFFSET; in acp_dma_hw_params()
945 rtd->ch1 = I2S_TO_ACP_DMA_CH_NUM; in acp_dma_hw_params()
946 rtd->ch2 = ACP_TO_SYSRAM_CH_NUM; in acp_dma_hw_params()
947 switch (adata->asic_type) { in acp_dma_hw_params()
949 rtd->pte_offset = ACP_ST_CAPTURE_PTE_OFFSET; in acp_dma_hw_params()
950 rtd->sram_bank = ACP_SRAM_BANK_2_ADDRESS; in acp_dma_hw_params()
953 rtd->pte_offset = ACP_CAPTURE_PTE_OFFSET; in acp_dma_hw_params()
954 rtd->sram_bank = ACP_SRAM_BANK_5_ADDRESS; in acp_dma_hw_params()
956 rtd->destination = FROM_ACP_I2S_1; in acp_dma_hw_params()
957 rtd->dma_dscr_idx_1 = CAPTURE_START_DMA_DESCR_CH14; in acp_dma_hw_params()
958 rtd->dma_dscr_idx_2 = CAPTURE_START_DMA_DESCR_CH15; in acp_dma_hw_params()
959 rtd->byte_cnt_high_reg_offset = in acp_dma_hw_params()
961 rtd->byte_cnt_low_reg_offset = in acp_dma_hw_params()
963 rtd->dma_curr_dscr = mmACP_DMA_CUR_DSCR_15; in acp_dma_hw_params()
964 adata->capture_i2ssp_stream = substream; in acp_dma_hw_params()
970 acp_set_sram_bank_state(rtd->acp_mmio, 0, true); in acp_dma_hw_params()
972 rtd->dma_addr = runtime->dma_addr; in acp_dma_hw_params()
973 rtd->order = get_order(size); in acp_dma_hw_params()
975 /* Fill the page table entries in ACP SRAM */ in acp_dma_hw_params()
976 rtd->size = size; in acp_dma_hw_params()
977 rtd->num_of_pages = PAGE_ALIGN(size) >> PAGE_SHIFT; in acp_dma_hw_params()
978 rtd->direction = substream->stream; in acp_dma_hw_params()
980 config_acp_dma(rtd->acp_mmio, rtd, adata->asic_type); in acp_dma_hw_params()
988 byte_count.bcount.high = acp_reg_read(rtd->acp_mmio, in acp_get_byte_count()
989 rtd->byte_cnt_high_reg_offset); in acp_get_byte_count()
990 byte_count.bcount.low = acp_reg_read(rtd->acp_mmio, in acp_get_byte_count()
991 rtd->byte_cnt_low_reg_offset); in acp_get_byte_count()
1004 struct snd_pcm_runtime *runtime = substream->runtime; in acp_dma_pointer()
1005 struct audio_substream_data *rtd = runtime->private_data; in acp_dma_pointer()
1008 return -EINVAL; in acp_dma_pointer()
1010 if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { in acp_dma_pointer()
1011 period_bytes = frames_to_bytes(runtime, runtime->period_size); in acp_dma_pointer()
1013 if (bytescount >= rtd->bytescount) in acp_dma_pointer()
1014 bytescount -= rtd->bytescount; in acp_dma_pointer()
1018 dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr); in acp_dma_pointer()
1019 if (dscr == rtd->dma_dscr_idx_1) in acp_dma_pointer()
1026 runtime->delay = bytes_to_frames(runtime, delay); in acp_dma_pointer()
1029 buffersize = frames_to_bytes(runtime, runtime->buffer_size); in acp_dma_pointer()
1031 if (bytescount > rtd->bytescount) in acp_dma_pointer()
1032 bytescount -= rtd->bytescount; in acp_dma_pointer()
1041 struct snd_pcm_runtime *runtime = substream->runtime; in acp_dma_prepare()
1042 struct audio_substream_data *rtd = runtime->private_data; in acp_dma_prepare()
1046 return -EINVAL; in acp_dma_prepare()
1048 if (rtd->direction == SNDRV_PCM_STREAM_PLAYBACK) { in acp_dma_prepare()
1049 ch_acp_sysmem = rtd->ch1; in acp_dma_prepare()
1050 ch_acp_i2s = rtd->ch2; in acp_dma_prepare()
1052 ch_acp_i2s = rtd->ch1; in acp_dma_prepare()
1053 ch_acp_sysmem = rtd->ch2; in acp_dma_prepare()
1055 config_acp_dma_channel(rtd->acp_mmio, in acp_dma_prepare()
1057 rtd->dma_dscr_idx_1, in acp_dma_prepare()
1059 config_acp_dma_channel(rtd->acp_mmio, in acp_dma_prepare()
1061 rtd->dma_dscr_idx_2, in acp_dma_prepare()
1071 struct snd_pcm_runtime *runtime = substream->runtime; in acp_dma_trigger()
1072 struct audio_substream_data *rtd = runtime->private_data; in acp_dma_trigger()
1075 return -EINVAL; in acp_dma_trigger()
1080 rtd->bytescount = acp_get_byte_count(rtd); in acp_dma_trigger()
1081 if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { in acp_dma_trigger()
1082 if (rtd->capture_channel == CAP_CHANNEL0) { in acp_dma_trigger()
1083 acp_dma_cap_channel_disable(rtd->acp_mmio, in acp_dma_trigger()
1085 acp_dma_cap_channel_enable(rtd->acp_mmio, in acp_dma_trigger()
1088 if (rtd->capture_channel == CAP_CHANNEL1) { in acp_dma_trigger()
1089 acp_dma_cap_channel_disable(rtd->acp_mmio, in acp_dma_trigger()
1091 acp_dma_cap_channel_enable(rtd->acp_mmio, in acp_dma_trigger()
1094 acp_dma_start(rtd->acp_mmio, rtd->ch1, true); in acp_dma_trigger()
1096 acp_dma_start(rtd->acp_mmio, rtd->ch1, true); in acp_dma_trigger()
1097 acp_dma_start(rtd->acp_mmio, rtd->ch2, true); in acp_dma_trigger()
1104 acp_dma_stop(rtd->acp_mmio, rtd->ch2); in acp_dma_trigger()
1105 ret = acp_dma_stop(rtd->acp_mmio, rtd->ch1); in acp_dma_trigger()
1108 ret = -EINVAL; in acp_dma_trigger()
1116 struct audio_drv_data *adata = dev_get_drvdata(component->dev); in acp_dma_new()
1117 struct device *parent = component->dev->parent; in acp_dma_new()
1119 switch (adata->asic_type) { in acp_dma_new()
1121 snd_pcm_set_managed_buffer_all(rtd->pcm, in acp_dma_new()
1128 snd_pcm_set_managed_buffer_all(rtd->pcm, in acp_dma_new()
1142 struct snd_pcm_runtime *runtime = substream->runtime; in acp_dma_close()
1143 struct audio_substream_data *rtd = runtime->private_data; in acp_dma_close()
1144 struct audio_drv_data *adata = dev_get_drvdata(component->dev); in acp_dma_close()
1146 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { in acp_dma_close()
1147 switch (rtd->i2s_instance) { in acp_dma_close()
1149 adata->play_i2sbt_stream = NULL; in acp_dma_close()
1153 adata->play_i2ssp_stream = NULL; in acp_dma_close()
1155 * For Stoney, Memory gating is disabled,i.e SRAM Banks in acp_dma_close()
1156 * won't be turned off. The default state for SRAM banks in acp_dma_close()
1157 * is ON.Setting SRAM bank state code skipped for STONEY in acp_dma_close()
1161 if (adata->asic_type != CHIP_STONEY) { in acp_dma_close()
1163 acp_set_sram_bank_state(adata->acp_mmio, in acp_dma_close()
1168 switch (rtd->i2s_instance) { in acp_dma_close()
1170 adata->capture_i2sbt_stream = NULL; in acp_dma_close()
1174 adata->capture_i2ssp_stream = NULL; in acp_dma_close()
1175 if (adata->asic_type != CHIP_STONEY) { in acp_dma_close()
1177 acp_set_sram_bank_state(adata->acp_mmio, in acp_dma_close()
1187 if (!adata->play_i2ssp_stream && !adata->capture_i2ssp_stream && in acp_dma_close()
1188 !adata->play_i2sbt_stream && !adata->capture_i2sbt_stream) in acp_dma_close()
1189 acp_reg_write(0, adata->acp_mmio, mmACP_EXTERNAL_INTR_ENB); in acp_dma_close()
1210 const u32 *pdata = pdev->dev.platform_data; in acp_audio_probe()
1213 dev_err(&pdev->dev, "Missing platform data\n"); in acp_audio_probe()
1214 return -ENODEV; in acp_audio_probe()
1217 audio_drv_data = devm_kzalloc(&pdev->dev, sizeof(struct audio_drv_data), in acp_audio_probe()
1220 return -ENOMEM; in acp_audio_probe()
1222 audio_drv_data->acp_mmio = devm_platform_ioremap_resource(pdev, 0); in acp_audio_probe()
1223 if (IS_ERR(audio_drv_data->acp_mmio)) in acp_audio_probe()
1224 return PTR_ERR(audio_drv_data->acp_mmio); in acp_audio_probe()
1227 * The following members gets populated in device 'open' in acp_audio_probe()
1229 * and device doesn't generate any interrupts. in acp_audio_probe()
1232 audio_drv_data->play_i2ssp_stream = NULL; in acp_audio_probe()
1233 audio_drv_data->capture_i2ssp_stream = NULL; in acp_audio_probe()
1234 audio_drv_data->play_i2sbt_stream = NULL; in acp_audio_probe()
1235 audio_drv_data->capture_i2sbt_stream = NULL; in acp_audio_probe()
1237 audio_drv_data->asic_type = *pdata; in acp_audio_probe()
1241 dev_err(&pdev->dev, "IORESOURCE_IRQ FAILED\n"); in acp_audio_probe()
1242 return -ENODEV; in acp_audio_probe()
1245 status = devm_request_irq(&pdev->dev, res->start, dma_irq_handler, in acp_audio_probe()
1246 0, "ACP_IRQ", &pdev->dev); in acp_audio_probe()
1248 dev_err(&pdev->dev, "ACP IRQ request failed\n"); in acp_audio_probe()
1252 dev_set_drvdata(&pdev->dev, audio_drv_data); in acp_audio_probe()
1255 status = acp_init(audio_drv_data->acp_mmio, audio_drv_data->asic_type); in acp_audio_probe()
1257 dev_err(&pdev->dev, "ACP Init failed status:%d\n", status); in acp_audio_probe()
1261 status = devm_snd_soc_register_component(&pdev->dev, in acp_audio_probe()
1264 dev_err(&pdev->dev, "Fail to register ALSA platform device\n"); in acp_audio_probe()
1268 pm_runtime_set_autosuspend_delay(&pdev->dev, 10000); in acp_audio_probe()
1269 pm_runtime_use_autosuspend(&pdev->dev); in acp_audio_probe()
1270 pm_runtime_enable(&pdev->dev); in acp_audio_probe()
1278 struct audio_drv_data *adata = dev_get_drvdata(&pdev->dev); in acp_audio_remove()
1280 status = acp_deinit(adata->acp_mmio); in acp_audio_remove()
1282 dev_err(&pdev->dev, "ACP Deinit failed status:%d\n", status); in acp_audio_remove()
1283 pm_runtime_disable(&pdev->dev); in acp_audio_remove()
1288 static int acp_pcm_resume(struct device *dev) in acp_pcm_resume()
1295 status = acp_init(adata->acp_mmio, adata->asic_type); in acp_pcm_resume()
1301 if (adata->play_i2ssp_stream && adata->play_i2ssp_stream->runtime) { in acp_pcm_resume()
1303 * For Stoney, Memory gating is disabled,i.e SRAM Banks in acp_pcm_resume()
1304 * won't be turned off. The default state for SRAM banks is ON. in acp_pcm_resume()
1305 * Setting SRAM bank state code skipped for STONEY platform. in acp_pcm_resume()
1307 if (adata->asic_type != CHIP_STONEY) { in acp_pcm_resume()
1309 acp_set_sram_bank_state(adata->acp_mmio, bank, in acp_pcm_resume()
1312 rtd = adata->play_i2ssp_stream->runtime->private_data; in acp_pcm_resume()
1313 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type); in acp_pcm_resume()
1315 if (adata->capture_i2ssp_stream && in acp_pcm_resume()
1316 adata->capture_i2ssp_stream->runtime) { in acp_pcm_resume()
1317 if (adata->asic_type != CHIP_STONEY) { in acp_pcm_resume()
1319 acp_set_sram_bank_state(adata->acp_mmio, bank, in acp_pcm_resume()
1322 rtd = adata->capture_i2ssp_stream->runtime->private_data; in acp_pcm_resume()
1323 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type); in acp_pcm_resume()
1325 if (adata->asic_type != CHIP_CARRIZO) { in acp_pcm_resume()
1326 if (adata->play_i2sbt_stream && in acp_pcm_resume()
1327 adata->play_i2sbt_stream->runtime) { in acp_pcm_resume()
1328 rtd = adata->play_i2sbt_stream->runtime->private_data; in acp_pcm_resume()
1329 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type); in acp_pcm_resume()
1331 if (adata->capture_i2sbt_stream && in acp_pcm_resume()
1332 adata->capture_i2sbt_stream->runtime) { in acp_pcm_resume()
1333 rtd = adata->capture_i2sbt_stream->runtime->private_data; in acp_pcm_resume()
1334 config_acp_dma(adata->acp_mmio, rtd, adata->asic_type); in acp_pcm_resume()
1337 acp_reg_write(1, adata->acp_mmio, mmACP_EXTERNAL_INTR_ENB); in acp_pcm_resume()
1341 static int acp_pcm_runtime_suspend(struct device *dev) in acp_pcm_runtime_suspend()
1346 status = acp_deinit(adata->acp_mmio); in acp_pcm_runtime_suspend()
1349 acp_reg_write(0, adata->acp_mmio, mmACP_EXTERNAL_INTR_ENB); in acp_pcm_runtime_suspend()
1353 static int acp_pcm_runtime_resume(struct device *dev) in acp_pcm_runtime_resume()
1358 status = acp_init(adata->acp_mmio, adata->asic_type); in acp_pcm_runtime_resume()
1363 acp_reg_write(1, adata->acp_mmio, mmACP_EXTERNAL_INTR_ENB); in acp_pcm_runtime_resume()