Commit 8a0cfac6 authored by Mark Brown's avatar Mark Brown

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.
parents 63a51128 e2e53088
...@@ -130,6 +130,9 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_substream *substream, struct s ...@@ -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]) { if (dai_data->is_port_started[dai->id]) {
q6apm_graph_stop(dai_data->graph[dai->id]); q6apm_graph_stop(dai_data->graph[dai->id]);
dai_data->is_port_started[dai->id] = false; dai_data->is_port_started[dai->id] = false;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
q6apm_graph_close(dai_data->graph[dai->id]);
} }
/** /**
......
...@@ -32,11 +32,8 @@ int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream, ...@@ -32,11 +32,8 @@ int qcom_snd_sdw_prepare(struct snd_pcm_substream *substream,
return 0; return 0;
} }
if (*stream_prepared) { if (*stream_prepared)
sdw_disable_stream(sruntime); return 0;
sdw_deprepare_stream(sruntime);
*stream_prepared = false;
}
ret = sdw_prepare_stream(sruntime); ret = sdw_prepare_stream(sruntime);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment