mask = (e->mask - 1) << e->shift_l; 
mask = (bitmask - 1) << e->shift_l; 
int snd_ac97_put_enum_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol){	ac97_t *ac97 = snd_kcontrol_chip(kcontrol);	struct ac97_enum *e = (struct ac97_enum *)kcontrol->private_value;	unsigned short val;	unsigned short mask;		if (ucontrol->value.enumerated.item[0] > e->mask - 1)		return -EINVAL;	val = ucontrol->value.enumerated.item[0] << e->shift_l;	mask = (e->mask - 1) << e->shift_l;	if (e->shift_l != e->shift_r) {		if (ucontrol->value.enumerated.item[1] > e->mask - 1)			return -EINVAL;		val |= ucontrol->value.enumerated.item[1] << e->shift_r;		mask |= (e->mask - 1) << e->shift_r;	}	return snd_ac97_update_bits(ac97, e->reg, mask, val);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5f0dccf8500b0cc2ff247f626bc249bc184fd184/ac97_codec.c/clean/sound/pci/ac97/ac97_codec.c