summaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-dapm.c
diff options
context:
space:
mode:
authorLars-Peter Clausen2013-07-29 17:13:55 +0200
committerMark Brown2013-07-29 19:40:59 +0200
commit564c65049eddb1a95b48958080db97eda88c98dd (patch)
treebfcb726569f7296f6875c564ba58276a0a36547a /sound/soc/soc-dapm.c
parentMerge branch 'topic/core' of git://git.kernel.org/pub/scm/linux/kernel/git/br... (diff)
downloadkernel-qcow2-linux-564c65049eddb1a95b48958080db97eda88c98dd.tar.gz
kernel-qcow2-linux-564c65049eddb1a95b48958080db97eda88c98dd.tar.xz
kernel-qcow2-linux-564c65049eddb1a95b48958080db97eda88c98dd.zip
ASoC: dapm: Move snd_soc_dapm_update from dapm context to card
The update field of a DAPM context is only assigned while the card's dapm_mutex is locked, the field is also cleared again while the mutex is stil locked. So there will only ever be one DAPM context at a time with a non-NULL update field. So it is safe to move the update field from the DAPM context struct to the card struct. Doing so will allow further cleanups in this area. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/soc-dapm.c')
-rw-r--r--sound/soc/soc-dapm.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 366daef006ed..7449e27bf133 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -1425,7 +1425,7 @@ static void dapm_seq_run(struct snd_soc_dapm_context *dapm,
static void dapm_widget_update(struct snd_soc_dapm_context *dapm)
{
- struct snd_soc_dapm_update *update = dapm->update;
+ struct snd_soc_dapm_update *update = dapm->card->update;
struct snd_soc_dapm_widget_list *wlist;
struct snd_soc_dapm_widget *w = NULL;
unsigned int wi;
@@ -1959,9 +1959,9 @@ int snd_soc_dapm_mux_update_power(struct snd_soc_dapm_context *dapm,
int ret;
mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS_RUNTIME);
- dapm->update = update;
+ card->update = update;
ret = soc_dapm_mux_update_power(dapm, kcontrol, mux, e);
- dapm->update = NULL;
+ card->update = NULL;
mutex_unlock(&card->dapm_mutex);
if (ret > 0)
soc_dpcm_runtime_update(card);
@@ -2002,9 +2002,9 @@ int snd_soc_dapm_mixer_update_power(struct snd_soc_dapm_context *dapm,
int ret;
mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS_RUNTIME);
- dapm->update = update;
+ card->update = update;
ret = soc_dapm_mixer_update_power(dapm, kcontrol, connect);
- dapm->update = NULL;
+ card->update = NULL;
mutex_unlock(&card->dapm_mutex);
if (ret > 0)
soc_dpcm_runtime_update(card);
@@ -2693,11 +2693,11 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
update.mask = mask;
update.val = val;
- widget->dapm->update = &update;
+ card->update = &update;
soc_dapm_mixer_update_power(widget->dapm, kcontrol, connect);
- widget->dapm->update = NULL;
+ card->update = NULL;
}
mutex_unlock(&card->dapm_mutex);
@@ -2775,11 +2775,11 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
update.reg = e->reg;
update.mask = mask;
update.val = val;
- widget->dapm->update = &update;
+ card->update = &update;
soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e);
- widget->dapm->update = NULL;
+ card->update = NULL;
}
mutex_unlock(&card->dapm_mutex);
@@ -2928,11 +2928,11 @@ int snd_soc_dapm_put_value_enum_double(struct snd_kcontrol *kcontrol,
update.reg = e->reg;
update.mask = mask;
update.val = val;
- widget->dapm->update = &update;
+ card->update = &update;
soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e);
- widget->dapm->update = NULL;
+ card->update = NULL;
}
mutex_unlock(&card->dapm_mutex);