return IRQ_HANDLED; 
return ret; 
static irqreturn_t flexcop_pci_irq(int irq, void *dev_id, struct pt_regs *regs){	struct flexcop_pci *fc_pci = dev_id;	struct flexcop_device *fc = fc_pci->fc_dev;	flexcop_ibi_value v = fc->read_ibi_reg(fc,irq_20c);	deb_irq("irq: %08x cur_addr: %08x (%d), our addrs. 1: %08x 2: %08x; 0x000: "			"%08x, 0x00c: %08x\n",v.raw,			fc->read_ibi_reg(fc,dma1_008).dma_0x8.dma_cur_addr << 2,			fc_pci->active_dma1_addr,			fc_pci->dma[0].dma_addr0,fc_pci->dma[0].dma_addr1,			fc->read_ibi_reg(fc,dma1_000).raw,			fc->read_ibi_reg(fc,dma1_00c).raw);	if (v.irq_20c.DMA1_IRQ_Status == 1) {		if (fc_pci->active_dma1_addr == 0)			flexcop_pass_dmx_packets(fc_pci->fc_dev,fc_pci->dma[0].cpu_addr0,fc_pci->dma[0].size / 188);		else			flexcop_pass_dmx_packets(fc_pci->fc_dev,fc_pci->dma[0].cpu_addr1,fc_pci->dma[0].size / 188);		deb_irq("page change to page: %d\n",!fc_pci->active_dma1_addr);		fc_pci->active_dma1_addr = !fc_pci->active_dma1_addr;	} else if (v.irq_20c.DMA1_Timer_Status == 1) {		/* for the timer IRQ we only can use buffer dmx feeding, because we don't have		 * complete TS packets when reading from the DMA memory */		dma_addr_t cur_addr =			fc->read_ibi_reg(fc,dma1_008).dma_0x8.dma_cur_addr << 2;		u32 cur_pos = cur_addr - fc_pci->dma[0].dma_addr0;		/* buffer end was reached, restarted from the beginning		 * pass the data from last_cur_pos to the buffer end to the demux		 */		if (cur_pos < fc_pci->last_dma1_cur_pos) {			flexcop_pass_dmx_data(fc_pci->fc_dev,					fc_pci->dma[0].cpu_addr0 + fc_pci->last_dma1_cur_pos,					(fc_pci->dma[0].size*2 - 1) - fc_pci->last_dma1_cur_pos);			fc_pci->last_dma1_cur_pos = 0;		}		if (cur_pos > fc_pci->last_dma1_cur_pos) {			flexcop_pass_dmx_data(fc_pci->fc_dev,					fc_pci->dma[0].cpu_addr0 + fc_pci->last_dma1_cur_pos,					cur_pos - fc_pci->last_dma1_cur_pos);		}		fc_pci->last_dma1_cur_pos = cur_pos;	}/* packet count would be ideal for hw filtering, but it isn't working. Either * the data book is wrong, or I'm unable to read it correctly *//*	if (v.irq_20c.DMA1_Size_IRQ_Status == 1) { packet counter */	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4853f16ad881194ec4c49f73287ef1999b2585ea/flexcop-pci.c/clean/drivers/media/dvb/b2c2/flexcop-pci.c