diff options
-rw-r--r-- | sound/soc/soc-dapm.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 9dd2d1d63981..8d8a8dc6857e 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -363,11 +363,10 @@ static void dapm_set_path_status(struct snd_soc_dapm_widget *w, val = soc_widget_read(w, e->reg); item = (val >> e->shift_l) & e->mask; - p->connect = 0; - for (i = 0; i < e->max; i++) { - if (!(strcmp(p->name, e->texts[i])) && item == i) - p->connect = 1; - } + if (item < e->max && !strcmp(p->name, e->texts[item])) + p->connect = 1; + else + p->connect = 0; } break; case snd_soc_dapm_virt_mux: { @@ -397,11 +396,10 @@ static void dapm_set_path_status(struct snd_soc_dapm_widget *w, break; } - p->connect = 0; - for (i = 0; i < e->max; i++) { - if (!(strcmp(p->name, e->texts[i])) && item == i) - p->connect = 1; - } + if (item < e->max && !strcmp(p->name, e->texts[item])) + p->connect = 1; + else + p->connect = 0; } break; /* does not affect routing - always connected */ |