|
@@ -355,12 +355,10 @@ static void dapm_set_path_status(struct snd_soc_dapm_widget *w,
|
|
|
case snd_soc_dapm_mux: {
|
|
|
struct soc_enum *e = (struct soc_enum *)
|
|
|
w->kcontrol_news[i].private_value;
|
|
|
- int val, item, bitmask;
|
|
|
+ int val, item;
|
|
|
|
|
|
- for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
|
|
|
- ;
|
|
|
val = soc_widget_read(w, e->reg);
|
|
|
- item = (val >> e->shift_l) & (bitmask - 1);
|
|
|
+ item = (val >> e->shift_l) & e->mask;
|
|
|
|
|
|
p->connect = 0;
|
|
|
for (i = 0; i < e->max; i++) {
|
|
@@ -2677,15 +2675,13 @@ int snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_soc_dapm_widget_list *wlist = snd_kcontrol_chip(kcontrol);
|
|
|
struct snd_soc_dapm_widget *widget = wlist->widgets[0];
|
|
|
struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
|
|
|
- unsigned int val, bitmask;
|
|
|
+ unsigned int val;
|
|
|
|
|
|
- for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
|
|
|
- ;
|
|
|
val = snd_soc_read(widget->codec, e->reg);
|
|
|
- ucontrol->value.enumerated.item[0] = (val >> e->shift_l) & (bitmask - 1);
|
|
|
+ ucontrol->value.enumerated.item[0] = (val >> e->shift_l) & e->mask;
|
|
|
if (e->shift_l != e->shift_r)
|
|
|
ucontrol->value.enumerated.item[1] =
|
|
|
- (val >> e->shift_r) & (bitmask - 1);
|
|
|
+ (val >> e->shift_r) & e->mask;
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -2709,22 +2705,20 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_soc_card *card = codec->card;
|
|
|
struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
|
|
|
unsigned int val, mux, change;
|
|
|
- unsigned int mask, bitmask;
|
|
|
+ unsigned int mask;
|
|
|
struct snd_soc_dapm_update update;
|
|
|
int wi;
|
|
|
|
|
|
- for (bitmask = 1; bitmask < e->max; bitmask <<= 1)
|
|
|
- ;
|
|
|
if (ucontrol->value.enumerated.item[0] > e->max - 1)
|
|
|
return -EINVAL;
|
|
|
mux = ucontrol->value.enumerated.item[0];
|
|
|
val = mux << e->shift_l;
|
|
|
- mask = (bitmask - 1) << e->shift_l;
|
|
|
+ mask = e->mask << e->shift_l;
|
|
|
if (e->shift_l != e->shift_r) {
|
|
|
if (ucontrol->value.enumerated.item[1] > e->max - 1)
|
|
|
return -EINVAL;
|
|
|
val |= ucontrol->value.enumerated.item[1] << e->shift_r;
|
|
|
- mask |= (bitmask - 1) << e->shift_r;
|
|
|
+ mask |= e->mask << e->shift_r;
|
|
|
}
|
|
|
|
|
|
mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS_RUNTIME);
|