/* update the given register with and/or mask and save the data to the cache  */
static int wm8776_write_bits(struct snd_ice1712 *ice, struct snd_wm8776 *wm, unsigned char reg, unsigned short mask, unsigned short val)
/* update the given register with and/or mask and save the data to the cache  */
static int wm8776_write_bits(struct snd_ice1712 *ice, struct snd_wm8776 *wm, unsigned char reg, unsigned short mask, unsigned short val)
{
	val |= wm->regs[reg] & ~mask;
	if (val != wm->regs[reg]) {
		wm8776_write(ice, wm, reg, val);
		return 1;
	}
	return 0;
}