/* Return TRUE is we are currently receiving a frame  */
static int nsc_ircc_is_receiving(struct nsc_ircc_cb *self)
/* Return TRUE is we are currently receiving a frame  */
static int nsc_ircc_is_receiving(struct nsc_ircc_cb *self)
{
	unsigned long flags;
	int status = FALSE;
	int iobase;
	__u8 bank;
	IRDA_ASSERT(self != NULL, return FALSE;);
	spin_lock_irqsave(&self->lock, flags);
	if (self->io.speed > 115200) {
		iobase = self->io.fir_base;
		bank = inb(iobase+BSR);
		switch_bank(iobase, BANK2);
		if ((inb(iobase+RXFLV) & 0x3f) != 0) {
			status =  TRUE;
		}
		outb(bank, iobase+BSR);
	} else 
		status = (self->rx_buff.state != OUTSIDE_FRAME);
	spin_unlock_irqrestore(&self->lock, flags);
	return status;
}