ASoC: dapm: Only lock CODEC for I/O if not using regmap
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 6 Mar 2012 23:58:22 +0000 (23:58 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 7 Mar 2012 11:53:00 +0000 (11:53 +0000)
If we do use regmap then regmap will take care of things for us. We
actually already have this check at a higher level for the current
users but this makes sure we do the right thing in the future too if
we need to.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
sound/soc/soc-dapm.c

index a837977f0ac74904ee222990ba96539cf5d69053..1ba2a711b54cffea0c02b940597512b90909f457 100644 (file)
@@ -208,7 +208,7 @@ static int soc_widget_write(struct snd_soc_dapm_widget *w, int reg, int val)
 
 static inline void soc_widget_lock(struct snd_soc_dapm_widget *w)
 {
-       if (w->codec)
+       if (w->codec && !w->codec->using_regmap)
                mutex_lock(&w->codec->mutex);
        else if (w->platform)
                mutex_lock(&w->platform->mutex);
@@ -216,7 +216,7 @@ static inline void soc_widget_lock(struct snd_soc_dapm_widget *w)
 
 static inline void soc_widget_unlock(struct snd_soc_dapm_widget *w)
 {
-       if (w->codec)
+       if (w->codec && !w->codec->using_regmap)
                mutex_unlock(&w->codec->mutex);
        else if (w->platform)
                mutex_unlock(&w->platform->mutex);