else { 
else if (intren0 & RINTEN0) { 
static irqreturn_t amd8111e_interrupt(int irq, void *dev_id, struct pt_regs *regs){	struct net_device * dev = (struct net_device *) dev_id;	struct amd8111e_priv *lp = netdev_priv(dev);	void __iomem *mmio = lp->mmio;	unsigned int intr0;	unsigned int handled = 1;	if(dev == NULL)		return IRQ_NONE;	if (regs) spin_lock (&lp->lock);	/* disabling interrupt */	writel(INTREN, mmio + CMD0);	/* Read interrupt status */	intr0 = readl(mmio + INT0);	/* Process all the INT event until INTR bit is clear. */	if (!(intr0 & INTR)){		handled = 0;		goto err_no_interrupt;	}		 	/* Current driver processes 4 interrupts : RINT,TINT,LCINT,STINT */	writel(intr0, mmio + INT0);	/* Check if Receive Interrupt has occurred. */#if CONFIG_AMD8111E_NAPI	if(intr0 & RINT0){		if(netif_rx_schedule_prep(dev)){			/* Disable receive interupts */			writel(RINTEN0, mmio + INTEN0);			/* Schedule a polling routine */			__netif_rx_schedule(dev);		}		else {			printk("************Driver bug! \				interrupt while in poll\n");			/* Fix by disabling interrupts */			writel(RINT0, mmio + INT0);		}	}#else	if(intr0 & RINT0){		amd8111e_rx(dev);		writel(VAL2 | RDMD0, mmio + CMD0);	}#endif /* CONFIG_AMD8111E_NAPI */	/* Check if  Transmit Interrupt has occurred. */	if(intr0 & TINT0)		amd8111e_tx(dev);			/* Check if  Link Change Interrupt has occurred. */	if (intr0 & LCINT)		amd8111e_link_change(dev);	/* Check if Hardware Timer Interrupt has occurred. */	if (intr0 & STINT)		amd8111e_calc_coalesce(dev);err_no_interrupt:	writel( VAL0 | INTREN,mmio + CMD0);		if (regs) spin_unlock(&lp->lock);		return IRQ_RETVAL(handled);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/dfa1b73ffb414b64dc0452260132a090eb25bf52/amd8111e.c/clean/drivers/net/amd8111e.c