} else if (alsa) { saa7134_irq_alsa_done(dev,status); 
static irqreturn_t saa7134_irq(int irq, void *dev_id, struct pt_regs *regs){	struct saa7134_dev *dev = (struct saa7134_dev*) dev_id;	unsigned long report,status;	int loop, handled = 0;	for (loop = 0; loop < 10; loop++) {		report = saa_readl(SAA7134_IRQ_REPORT);		status = saa_readl(SAA7134_IRQ_STATUS);		if (0 == report) {			if (irq_debug > 1)				printk(KERN_DEBUG "%s/irq: no (more) work\n",				       dev->name);			goto out;		}		handled = 1;		saa_writel(SAA7134_IRQ_REPORT,report);		if (irq_debug)			print_irqstatus(dev,loop,report,status);		if (report & SAA7134_IRQ_REPORT_RDCAP /* _INTL */)			saa7134_irq_video_intl(dev);		if ((report & SAA7134_IRQ_REPORT_DONE_RA0) &&		    (status & 0x60) == 0)			saa7134_irq_video_done(dev,status);		if ((report & SAA7134_IRQ_REPORT_DONE_RA0) &&		    (status & 0x40) == 0x40)			saa7134_irq_vbi_done(dev,status);		if ((report & SAA7134_IRQ_REPORT_DONE_RA2) &&		    card_has_mpeg(dev))			saa7134_irq_ts_done(dev,status);		if ((report & SAA7134_IRQ_REPORT_DONE_RA3))  {			if (oss) {				saa7134_irq_oss_done(dev,status);			} else if (alsa) {				saa7134_irq_alsa_done(dev,status);			}		}		if ((report & (SAA7134_IRQ_REPORT_GPIO16 |			       SAA7134_IRQ_REPORT_GPIO18)) &&		    dev->remote)			saa7134_input_irq(dev);	}	if (10 == loop) {		print_irqstatus(dev,loop,report,status);		if (report & SAA7134_IRQ_REPORT_PE) {			/* disable all parity error */			printk(KERN_WARNING "%s/irq: looping -- "			       "clearing PE (parity error!) enable bit\n",dev->name);			saa_clearl(SAA7134_IRQ2,SAA7134_IRQ2_INTE_PE);		} else if (report & (SAA7134_IRQ_REPORT_GPIO16 |				     SAA7134_IRQ_REPORT_GPIO18)) {			/* disable gpio IRQs */			printk(KERN_WARNING "%s/irq: looping -- "			       "clearing GPIO enable bits\n",dev->name);			saa_clearl(SAA7134_IRQ2, (SAA7134_IRQ2_INTE_GPIO16 |						  SAA7134_IRQ2_INTE_GPIO18));		} else {			/* disable all irqs */			printk(KERN_WARNING "%s/irq: looping -- "			       "clearing all enable bits\n",dev->name);			saa_writel(SAA7134_IRQ1,0);			saa_writel(SAA7134_IRQ2,0);		}	} out:	return IRQ_RETVAL(handled);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/79dd0c69f05fccb0396bdcd861ad4686ce888cda/saa7134-core.c/buggy/drivers/media/video/saa7134/saa7134-core.c