{
ac97_bus_t *bus;
int i, cidx, r, ok_flag;
- unsigned int reg_ok = 0;
+ unsigned int reg_ok[4] = {0,0,0,0};
unsigned char reg;
int err = 0;
snd_printk(KERN_ERR "invalid AC97 slot %i?\n", i);
continue;
}
- if (reg_ok & (1 << (reg - AC97_PCM_FRONT_DAC_RATE)))
+ if (reg_ok[cidx] & (1 << (reg - AC97_PCM_FRONT_DAC_RATE)))
continue;
//printk(KERN_DEBUG "setting ac97 reg 0x%x to rate %d\n", reg, rate);
err = snd_ac97_set_rate(pcm->r[r].codec[cidx], reg, rate);
if (err < 0)
snd_printk(KERN_ERR "error in snd_ac97_set_rate: cidx=%d, reg=0x%x, rate=%d, err=%d\n", cidx, reg, rate, err);
else
- reg_ok |= (1 << (reg - AC97_PCM_FRONT_DAC_RATE));
+ reg_ok[cidx] |= (1 << (reg - AC97_PCM_FRONT_DAC_RATE));
}
}
}