diff --git a/audioreach-driver/audioreach_common.c b/audioreach-driver/audioreach_common.c index 75ecfac..523b8bd 100644 --- a/audioreach-driver/audioreach_common.c +++ b/audioreach-driver/audioreach_common.c @@ -126,7 +126,8 @@ static int qcs6490_snd_sdw_prepare(struct snd_pcm_substream *substream, { struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream); struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0); - int ret; + struct snd_soc_dai *codec_dai; + int ret, i; if (!sruntime) return 0; @@ -167,6 +168,17 @@ static int qcs6490_snd_sdw_prepare(struct snd_pcm_substream *substream, } *stream_prepared = true; + switch (cpu_dai->id) { + case WSA_CODEC_DMA_RX_0: + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { + for_each_rtd_codec_dais(rtd, i, codec_dai) + snd_soc_dai_digital_mute(codec_dai, 0, substream->stream); + } + break; + default: + break; + } + return ret; } @@ -234,6 +246,19 @@ static void qcs6490_snd_shutdown(struct snd_pcm_substream *substream) struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0); struct qcs6490_snd_data *pdata = snd_soc_card_get_drvdata(rtd->card); struct sdw_stream_runtime *sruntime = pdata->sruntime[cpu_dai->id]; + struct snd_soc_dai *codec_dai; + int i; + + switch (cpu_dai->id) { + case WSA_CODEC_DMA_RX_0: + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { + for_each_rtd_codec_dais(rtd, i, codec_dai) + snd_soc_dai_digital_mute(codec_dai, 1, substream->stream); + } + break; + default: + break; + } pdata->sruntime[cpu_dai->id] = NULL; sdw_release_stream(sruntime); diff --git a/debian/changelog b/debian/changelog index 1a84dc3..000fd88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ -audioreach-kernel (1.0.0-1) UNRELEASED; urgency=medium +audioreach-kernel (1.0.1-1) UNRELEASED; urgency=medium * New upstream release + * New upstream release - -- GitHub Service Bot Sun, 14 Jun 2026 09:00:13 +0000 + -- GitHub Service Bot Tue, 30 Jun 2026 09:38:45 +0000 audioreach-kernel (1.0.0-1) unstable; urgency=low