ASoC: adau17x1: Do not reload dsp-fw if samplerate has not changed
Reloading fw causes an audiable popping sound, we can avoid this by not reloading if the samplerate is the same as before. Signed-off-by: Danny Smith <dannys@axis.com> Signed-off-by: Robert Rosengren <robert.rosengren@axis.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
953de782cc
commit
728815e3fe
@ -843,6 +843,15 @@ int adau17x1_setup_firmware(struct snd_soc_component *component,
|
||||
struct adau *adau = snd_soc_component_get_drvdata(component);
|
||||
struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
|
||||
|
||||
/* Check if sample rate is the same as before. If it is there is no
|
||||
* point in performing the below steps as the call to
|
||||
* sigmadsp_setup(...) will return directly when it finds the sample
|
||||
* rate to be the same as before. By checking this we can prevent an
|
||||
* audiable popping noise which occours when toggling DSP_RUN.
|
||||
*/
|
||||
if (adau->sigmadsp->current_samplerate == rate)
|
||||
return 0;
|
||||
|
||||
snd_soc_dapm_mutex_lock(dapm);
|
||||
|
||||
ret = regmap_read(adau->regmap, ADAU17X1_DSP_SAMPLING_RATE, &dspsr);
|
||||
|
Loading…
Reference in New Issue
Block a user