set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(1); 
schedule_timeout_uninterruptible(1); 
static int ac97_reset_wait(ac97_t *ac97, int timeout, int with_modem){	unsigned long end_time;	unsigned short val;	end_time = jiffies + timeout;	do {				/* use preliminary reads to settle the communication */		snd_ac97_read(ac97, AC97_RESET);		snd_ac97_read(ac97, AC97_VENDOR_ID1);		snd_ac97_read(ac97, AC97_VENDOR_ID2);		/* modem? */		if (with_modem) {			val = snd_ac97_read(ac97, AC97_EXTENDED_MID);			if (val != 0xffff && (val & 1) != 0)				return 0;		}		if (ac97->scaps & AC97_SCAP_DETECT_BY_VENDOR) {			/* probably only Xbox issue - all registers are read as zero */			val = snd_ac97_read(ac97, AC97_VENDOR_ID1);			if (val != 0 && val != 0xffff)				return 0;		} else {			/* because the PCM or MASTER volume registers can be modified,			 * the REC_GAIN register is used for tests			 */			/* test if we can write to the record gain volume register */			snd_ac97_write_cache(ac97, AC97_REC_GAIN, 0x8a05);			if ((snd_ac97_read(ac97, AC97_REC_GAIN) & 0x7fff) == 0x0a05)				return 0;		}		set_current_state(TASK_UNINTERRUPTIBLE);		schedule_timeout(1);	} while (time_after_eq(end_time, jiffies));	return -ENODEV;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8433a509c0eb6bb1f33ce39c82c580b8901619ee/ac97_codec.c/buggy/sound/pci/ac97/ac97_codec.c