/* Returns IRQ_HANDLED if any SCBs were processed, IRQ_NONE otherwise  */
static irqreturn_t orc_interrupt(struct orc_host *host)
/* Returns IRQ_HANDLED if any SCBs were processed, IRQ_NONE otherwise  */
static irqreturn_t orc_interrupt(struct orc_host *host)
{
	u8 scb_index;
	struct orc_scb *scb;
	if (inb(host->base + ORC_RQUEUECNT) == 0)
		return IRQ_NONE;
	do {
		scb_index = inb(host->base + ORC_RQUEUE);
		scb = (struct orc_scb *) ((unsigned long) host->scb_virt + (unsigned long) (sizeof(struct orc_scb) * scb_index));
		scb->status = 0x0;
		inia100_scb_handler(host, scb);
	} while (inb(host->base + ORC_RQUEUECNT));
	return IRQ_HANDLED;
}