ASoC: Factor write of widget power out into a separate function
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 28 Sep 2011 16:02:31 +0000 (17:02 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 4 Oct 2011 15:50:17 +0000 (16:50 +0100)
Split the decision about what the new power should be out from the
implementation of that decision.

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

index c277228..dcbd468 100644 (file)
@@ -1197,6 +1197,23 @@ static void dapm_post_sequence_async(void *data, async_cookie_t cookie)
        }
 }
 
+static void dapm_widget_set_power(struct snd_soc_dapm_widget *w, bool power,
+                                 struct list_head *up_list,
+                                 struct list_head *down_list)
+{
+       if (w->power == power)
+               return;
+
+       trace_snd_soc_dapm_widget_power(w, power);
+
+       if (power)
+               dapm_seq_insert(w, up_list, true);
+       else
+               dapm_seq_insert(w, down_list, false);
+
+       w->power = power;
+}
+
 static void dapm_power_one_widget(struct snd_soc_dapm_widget *w,
                                  struct list_head *up_list,
                                  struct list_head *down_list)
@@ -1241,17 +1258,7 @@ static void dapm_power_one_widget(struct snd_soc_dapm_widget *w,
                        }
                }
 
-               if (w->power == power)
-                       break;
-
-               trace_snd_soc_dapm_widget_power(w, power);
-
-               if (power)
-                       dapm_seq_insert(w, up_list, true);
-               else
-                       dapm_seq_insert(w, down_list, false);
-
-               w->power = power;
+               dapm_widget_set_power(w, power, up_list, down_list);
                break;
        }
 }