]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - sound/soc/amd/acp-pcm-dma.c
ASoC: AMD: Fix simultaneous playback and capture on different channel
[linux.git] / sound / soc / amd / acp-pcm-dma.c
index e359938e3d7e16bfd3995084be4e1b20d6b1989e..8f3bc6e37f265e2a65b3d30db87a8877f21e455e 100644 (file)
@@ -846,8 +846,12 @@ static int acp_dma_hw_params(struct snd_pcm_substream *substream,
                return -EINVAL;
 
        if (pinfo) {
-               rtd->i2s_instance = pinfo->i2s_instance;
-               rtd->capture_channel = pinfo->capture_channel;
+               if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+                       rtd->i2s_instance = pinfo->play_i2s_instance;
+               } else {
+                       rtd->i2s_instance = pinfo->cap_i2s_instance;
+                       rtd->capture_channel = pinfo->capture_channel;
+               }
        }
        if (adata->asic_type == CHIP_STONEY) {
                val = acp_reg_read(adata->acp_mmio,