unsigned long bellbits; u8 intstat, mask; intstat = rkt_readb(dev, MUnit.OISR); /* *	Read mask and invert because drawbridge is reversed. *	This allows us to only service interrupts that have *	been enabled. */ mask = ~(dev->OIMR); /* Check to see if this is our interrupt.  If it isn't just return */ if (intstat & mask) { bellbits = rkt_readl(dev, OutboundDoorbellReg); if (bellbits & DoorBellPrintfReady) { aac_printf(dev, rkt_readl(dev, IndexRegs.Mailbox[5])); rkt_writel(dev, MUnit.ODR,DoorBellPrintfReady); rkt_writel(dev, InboundDoorbellReg,DoorBellPrintfDone); 
 if (dev->new_comm_interface) { u32 Index = rkt_readl(dev, MUnit.OutboundQueue); if (Index == 0xFFFFFFFFL) Index = rkt_readl(dev, MUnit.OutboundQueue); if (Index != 0xFFFFFFFFL) { do { if (aac_intr_normal(dev, Index)) { rkt_writel(dev, MUnit.OutboundQueue, Index); rkt_writel(dev, MUnit.ODR, DoorBellAdapterNormRespReady); } Index = rkt_readl(dev, MUnit.OutboundQueue); } while (Index != 0xFFFFFFFFL); return IRQ_HANDLED; 
static irqreturn_t aac_rkt_intr(int irq, void *dev_id, struct pt_regs *regs){	struct aac_dev *dev = dev_id;	unsigned long bellbits;	u8 intstat, mask;	intstat = rkt_readb(dev, MUnit.OISR);	/*	 *	Read mask and invert because drawbridge is reversed.	 *	This allows us to only service interrupts that have 	 *	been enabled.	 */	mask = ~(dev->OIMR);	/* Check to see if this is our interrupt.  If it isn't just return */	if (intstat & mask) 	{		bellbits = rkt_readl(dev, OutboundDoorbellReg);		if (bellbits & DoorBellPrintfReady) {			aac_printf(dev, rkt_readl(dev, IndexRegs.Mailbox[5]));			rkt_writel(dev, MUnit.ODR,DoorBellPrintfReady);			rkt_writel(dev, InboundDoorbellReg,DoorBellPrintfDone);		}		else if (bellbits & DoorBellAdapterNormCmdReady) {			rkt_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdReady);			aac_command_normal(&dev->queues->queue[HostNormCmdQueue]);		}		else if (bellbits & DoorBellAdapterNormRespReady) {			aac_response_normal(&dev->queues->queue[HostNormRespQueue]);			rkt_writel(dev, MUnit.ODR,DoorBellAdapterNormRespReady);		}		else if (bellbits & DoorBellAdapterNormCmdNotFull) {			rkt_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull);		}		else if (bellbits & DoorBellAdapterNormRespNotFull) {			rkt_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull);			rkt_writel(dev, MUnit.ODR, DoorBellAdapterNormRespNotFull);		}		return IRQ_HANDLED;	}	return IRQ_NONE;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8e0c5ebde82b08f6d996e11983890fc4cc085fab/rkt.c/buggy/drivers/scsi/aacraid/rkt.c