int reg = kcontrol->private_value; unsigned int shift = 0, mask = 1; 
int reg = kcontrol->private_value & 0xffff; unsigned int shift = (kcontrol->private_value >> 16) & 0xff; unsigned int mask = 1; 
static int snd_ymfpci_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol){	ymfpci_t *chip = snd_kcontrol_chip(kcontrol);	int reg = kcontrol->private_value;	unsigned int shift = 0, mask = 1;	int change;	unsigned int val, oval;		switch (kcontrol->private_value) {	case YDSXGR_SPDIFOUTCTRL: break;	case YDSXGR_SPDIFINCTRL: break;	default: return -EINVAL;	}	val = (ucontrol->value.integer.value[0] & mask);	val <<= shift;	spin_lock_irq(&chip->reg_lock);	oval = snd_ymfpci_readl(chip, reg);	val = (oval & ~(mask << shift)) | val;	change = val != oval;	snd_ymfpci_writel(chip, reg, val);	spin_unlock_irq(&chip->reg_lock);	return change;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d602c885a6c30c78197b752c9241ce7e86cdf704/ymfpci_main.c/buggy/sound/pci/ymfpci/ymfpci_main.c