snd_printk("ac97 codec read TIMEOUT [0x%x/0x%x]!!!\n", reg, data); 
snd_printk(KERN_ERR "ac97 codec read TIMEOUT [0x%x/0x%x]!!!\n", reg, data); 
static unsigned short snd_trident_codec_read(ac97_t *ac97, unsigned short reg){	unsigned int data = 0, treg;	unsigned short count = 0xffff;	unsigned long flags;	trident_t *trident = ac97->private_data;	spin_lock_irqsave(&trident->reg_lock, flags);	if (trident->device == TRIDENT_DEVICE_ID_DX) {		data = (DX_AC97_BUSY_READ | (reg & 0x000000ff));		outl(data, TRID_REG(trident, DX_ACR1_AC97_R));		do {			data = inl(TRID_REG(trident, DX_ACR1_AC97_R));			if ((data & DX_AC97_BUSY_READ) == 0)				break;		} while (--count);	} else if (trident->device == TRIDENT_DEVICE_ID_NX) {		data = (NX_AC97_BUSY_READ | (reg & 0x000000ff));		treg = ac97->num == 0 ? NX_ACR2_AC97_R_PRIMARY : NX_ACR3_AC97_R_SECONDARY;		outl(data, TRID_REG(trident, treg));		do {			data = inl(TRID_REG(trident, treg));			if ((data & 0x00000C00) == 0)				break;		} while (--count);	} else if (trident->device == TRIDENT_DEVICE_ID_SI7018) {		data = SI_AC97_BUSY_READ | SI_AC97_AUDIO_BUSY | (reg & 0x000000ff);		if (ac97->num == 1)			data |= SI_AC97_SECONDARY;		outl(data, TRID_REG(trident, SI_AC97_READ));		do {			data = inl(TRID_REG(trident, SI_AC97_READ));			if ((data & (SI_AC97_BUSY_READ)) == 0)				break;		} while (--count);	}	if (count == 0 && !trident->ac97_detect) {		snd_printk("ac97 codec read TIMEOUT [0x%x/0x%x]!!!\n", reg, data);		data = 0;	}	spin_unlock_irqrestore(&trident->reg_lock, flags);	return ((unsigned short) (data >> 16));}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/99b359ba10a582148c6725f428a33ba5356dd993/trident_main.c/buggy/sound/pci/trident/trident_main.c