]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ASoC: Factor out widget power check operation
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 28 Sep 2011 17:28:23 +0000 (18:28 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 4 Oct 2011 15:50:19 +0000 (16:50 +0100)
We've got the same code in two different places, let's have it in a single
place instead.

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

index 8d760449965d326673386262d4c5ee9322630b0d..c1f3563133bc5220d5809d740bf9032b0a751e58 100644 (file)
@@ -771,6 +771,14 @@ int dapm_reg_event(struct snd_soc_dapm_widget *w,
 }
 EXPORT_SYMBOL_GPL(dapm_reg_event);
 
+static int dapm_widget_power_check(struct snd_soc_dapm_widget *w)
+{
+       if (w->force)
+               return 1;
+       else
+               return w->power_check(w);
+}
+
 /* Generic check to see if a widget should be powered.
  */
 static int dapm_generic_check_power(struct snd_soc_dapm_widget *w)
@@ -840,13 +848,7 @@ static int dapm_supply_check_power(struct snd_soc_dapm_widget *w)
                if (!path->sink)
                        continue;
 
-               if (path->sink->force) {
-                       power = 1;
-                       break;
-               }
-
-               if (path->sink->power_check &&
-                   path->sink->power_check(path->sink)) {
+               if (dapm_widget_power_check(path->sink)) {
                        power = 1;
                        break;
                }
@@ -1234,10 +1236,7 @@ static void dapm_power_one_widget(struct snd_soc_dapm_widget *w,
                break;
 
        default:
-               if (!w->force)
-                       power = w->power_check(w);
-               else
-                       power = 1;
+               power = dapm_widget_power_check(w);
 
                dapm_widget_set_power(w, power, up_list, down_list);
                break;