|
@@ -169,6 +169,19 @@ static inline struct snd_soc_card *dapm_get_soc_card(
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
+static void dapm_reset(struct snd_soc_card *card)
|
|
|
+{
|
|
|
+ struct snd_soc_dapm_widget *w;
|
|
|
+
|
|
|
+ memset(&card->dapm_stats, 0, sizeof(card->dapm_stats));
|
|
|
+
|
|
|
+ list_for_each_entry(w, &card->widgets, list) {
|
|
|
+ w->power_checked = false;
|
|
|
+ w->inputs = -1;
|
|
|
+ w->outputs = -1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static int soc_widget_read(struct snd_soc_dapm_widget *w, int reg)
|
|
|
{
|
|
|
if (w->codec)
|
|
@@ -1402,13 +1415,7 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- memset(&card->dapm_stats, 0, sizeof(card->dapm_stats));
|
|
|
-
|
|
|
- list_for_each_entry(w, &card->widgets, list) {
|
|
|
- w->power_checked = false;
|
|
|
- w->inputs = -1;
|
|
|
- w->outputs = -1;
|
|
|
- }
|
|
|
+ dapm_reset(card);
|
|
|
|
|
|
/* Check which widgets we need to power and store them in
|
|
|
* lists indicating if they should be powered up or down. We
|