iir = inb(iobase+UART_IIR) & UART_IIR_ID; 
iir = inb(iobase + UART_IIR) & UART_IIR_ID; 
static irqreturn_t smsc_ircc_interrupt_sir(struct net_device *dev){	struct smsc_ircc_cb *self = dev->priv;	int boguscount = 0;	int iobase;	int iir, lsr;	/* Already locked comming here in smsc_ircc_interrupt() */	/*spin_lock(&self->lock);*/	iobase = self->io.sir_base;	iir = inb(iobase+UART_IIR) & UART_IIR_ID;	if (iir == 0)		return IRQ_NONE;	while (iir) {		/* Clear interrupt */		lsr = inb(iobase+UART_LSR);		IRDA_DEBUG(4, "%s(), iir=%02x, lsr=%02x, iobase=%#x\n",			    __FUNCTION__, iir, lsr, iobase);		switch (iir) {		case UART_IIR_RLSI:			IRDA_DEBUG(2, "%s(), RLSI\n", __FUNCTION__);			break;		case UART_IIR_RDI:			/* Receive interrupt */			smsc_ircc_sir_receive(self);			break;		case UART_IIR_THRI:			if (lsr & UART_LSR_THRE)				/* Transmitter ready for data */				smsc_ircc_sir_write_wakeup(self);			break;		default:			IRDA_DEBUG(0, "%s(), unhandled IIR=%#x\n",				   __FUNCTION__, iir);			break;		}		/* Make sure we don't stay here to long */		if (boguscount++ > 100)			break;	        iir = inb(iobase + UART_IIR) & UART_IIR_ID;	}	/*spin_unlock(&self->lock);*/	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/98b7777331d4344821e900040da5d1d3016d9e67/smsc-ircc2.c/clean/drivers/net/irda/smsc-ircc2.c