summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2023-04-06 18:02:24 +0300
committerMark Brown <broonie@kernel.org>2023-04-06 18:02:24 +0300
commit8a0cfac697777bda216d73a2b3b8fe02fcaa7e38 (patch)
tree5bbf8b11ba869c314d4cae6185dfc55e73d23180 /sound
parent63a511284c9ea72696a5dd0a2d2721bdef19f774 (diff)
parente2e530886359246ae782c779be248c59bc2ed111 (diff)
downloadlinux-8a0cfac697777bda216d73a2b3b8fe02fcaa7e38.tar.xz
ASoC: qcom: fixes for Click/Pop Noise
Merge series from Srinivas Kandagatla <srinivas.kandagatla@linaro.org>: Click/Pop Noise was a long pending issue with WSA Codecs which are prone to accumlate DC when ports are active but without any data streams. There are multiple places in the current setup, where this could happen in both startup as well as shutdown path.
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/qcom/qdsp6/q6apm-lpass-dais.c3
-rw-r--r--sound/soc/qcom/sdw.c7
2 files changed, 5 insertions, 5 deletions
diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c
index 23d23bc6fbaa..420e8aa11f42 100644
--- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c
+++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c
@@ -130,6 +130,9 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_substream *substream, struct s
if (dai_data->is_port_started[dai->id]) {
q6apm_graph_stop(dai_data->graph[dai->id]);
dai_data->is_port_started[dai->id] = false;
+
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+ q6apm_graph_close(dai_data->graph[dai->id]);
}
/**
diff --git a/sound/soc/qcom/sdw.c b/sound/soc/qcom/sdw.c
index 10249519a39e..1a41419c7eb8 100644
--- a/sound/soc/qcom/sdw.c
+++ b/sound/soc/qcom/sdw.c
@@ -32,11 +32,8 @@ int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream,
return 0;
}
- if (*stream_prepared) {
- sdw_disable_stream(sruntime);
- sdw_deprepare_stream(sruntime);
- *stream_prepared = false;
- }
+ if (*stream_prepared)
+ return 0;
ret = sdw_prepare_stream(sruntime);
if (ret)