if (dev->oss.read_count >= snd_pcm_lib_period_bytes(dev->oss.substream)) { 
if (dev->dmasound.read_count >= snd_pcm_lib_period_bytes(dev->dmasound.substream)) { 
void saa7134_irq_alsa_done(struct saa7134_dev *dev, unsigned long status){	int next_blk, reg = 0;	spin_lock(&dev->slock);	if (UNSET == dev->oss.dma_blk) {		dprintk("irq: recording stopped\n");		goto done;	}	if (0 != (status & 0x0f000000))		dprintk("irq: lost %ld\n", (status >> 24) & 0x0f);	if (0 == (status & 0x10000000)) {		/* odd */		if (0 == (dev->oss.dma_blk & 0x01))			reg = SAA7134_RS_BA1(6);	} else {		/* even */		if (1 == (dev->oss.dma_blk & 0x01))			reg = SAA7134_RS_BA2(6);	}	if (0 == reg) {		dprintk("irq: field oops [%s]\n",			(status & 0x10000000) ? "even" : "odd");		goto done;	}	if (dev->oss.read_count >= dev->oss.blksize * (dev->oss.blocks-2)) {		dprintk("irq: overrun [full=%d/%d] - Blocks in %d\n",dev->oss.read_count,			dev->oss.bufsize, dev->oss.blocks);		saa7134_dma_stop(dev);		goto done;	}	/* next block addr */	next_blk = (dev->oss.dma_blk + 2) % dev->oss.blocks;	saa_writel(reg,next_blk * dev->oss.blksize);	if (debug > 2)		dprintk("irq: ok, %s, next_blk=%d, addr=%x, blocks=%u, size=%u, read=%u\n",			(status & 0x10000000) ? "even" : "odd ", next_blk,			next_blk * dev->oss.blksize, dev->oss.blocks, dev->oss.blksize, dev->oss.read_count);	/* update status & wake waiting readers */	dev->oss.dma_blk = (dev->oss.dma_blk + 1) % dev->oss.blocks;	dev->oss.read_count += dev->oss.blksize;	dev->oss.recording_on = reg;	if (dev->oss.read_count >= snd_pcm_lib_period_bytes(dev->oss.substream)) {		spin_unlock(&dev->slock);		snd_pcm_period_elapsed(dev->oss.substream);		spin_lock(&dev->slock);	} done:	spin_unlock(&dev->slock);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b54134be53be720da423692665ec215eb14a678b/saa7134-alsa.c/clean/drivers/media/video/saa7134/saa7134-alsa.c