diff options
author | Liam Girdwood <lrg@ti.com> | 2011-12-12 23:46:18 +0000 |
---|---|---|
committer | Simon Wilson <simonwilson@google.com> | 2012-01-17 13:44:30 -0800 |
commit | 9eac901ff48b70e54c7c437c1376ed06f2bef918 (patch) | |
tree | 30af69969b08ba6771d85e592b87a5c5e3919724 /sound/soc | |
parent | d6ce9ced7fc1e92d332f2faa0862d68d4844a516 (diff) | |
download | kernel_samsung_tuna-9eac901ff48b70e54c7c437c1376ed06f2bef918.zip kernel_samsung_tuna-9eac901ff48b70e54c7c437c1376ed06f2bef918.tar.gz kernel_samsung_tuna-9eac901ff48b70e54c7c437c1376ed06f2bef918.tar.bz2 |
ASoC: dsp - BE disconnection after pending flag is clear
Currently we can disconnect a BE and have its update flag incorrectly
set after reparenting. Fix this so we always clear the update flag
before any disconnections and reparenting.
dsp_run_update_startup() also called disconnect but this was always
called anyway by its caller soc_dsp_runtime_update() before the update
flag was cleared.
Change-Id: If0cde4c9df845a7189188bb49e6fb4fd496a925d
Signed-off-by: Liam Girdwood <lrg@ti.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/soc-dsp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/soc/soc-dsp.c b/sound/soc/soc-dsp.c index 40e459a..ab36c55 100644 --- a/sound/soc/soc-dsp.c +++ b/sound/soc/soc-dsp.c @@ -1103,7 +1103,7 @@ disconnect: if (be->dsp[stream].state != SND_SOC_DSP_STATE_START) dsp_params->state = SND_SOC_DSP_LINK_STATE_FREE; } - be_disconnect(fe, stream); + return ret; } @@ -1181,8 +1181,8 @@ int soc_dsp_runtime_update(struct snd_soc_dapm_widget *widget) } /* free old playback links */ - be_disconnect(fe, SNDRV_PCM_STREAM_PLAYBACK); fe_clear_pending(fe, SNDRV_PCM_STREAM_PLAYBACK); + be_disconnect(fe, SNDRV_PCM_STREAM_PLAYBACK); capture: /* skip if FE doesn't have capture capability */ @@ -1203,8 +1203,8 @@ capture: } /* free old capture links */ - be_disconnect(fe, SNDRV_PCM_STREAM_CAPTURE); fe_clear_pending(fe, SNDRV_PCM_STREAM_CAPTURE); + be_disconnect(fe, SNDRV_PCM_STREAM_CAPTURE); } mutex_unlock(&widget->dapm->card->dsp_mutex); |