} else if (rsr & UART01x_RSR_PE) 
} else if (ch & UART011_DR_PE) 
pl011_rx_chars(struct uart_amba_port *uap)#endif{	struct tty_struct *tty = uap->port.info->tty;	unsigned int status, ch, flag, rsr, max_count = 256;	status = readw(uap->port.membase + UART01x_FR);	while ((status & UART01x_FR_RXFE) == 0 && max_count--) {		if (tty->flip.count >= TTY_FLIPBUF_SIZE) {			if (tty->low_latency)				tty_flip_buffer_push(tty);			/*			 * If this failed then we will throw away the			 * bytes but must do so to clear interrupts			 */		}		ch = readw(uap->port.membase + UART01x_DR);		flag = TTY_NORMAL;		uap->port.icount.rx++;		/*		 * Note that the error handling code is		 * out of the main execution path		 */		rsr = readw(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX;		if (unlikely(rsr & UART01x_RSR_ANY)) {			if (rsr & UART01x_RSR_BE) {				rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE);				uap->port.icount.brk++;				if (uart_handle_break(&uap->port))					goto ignore_char;			} else if (rsr & UART01x_RSR_PE)				uap->port.icount.parity++;			else if (rsr & UART01x_RSR_FE)				uap->port.icount.frame++;			if (rsr & UART01x_RSR_OE)				uap->port.icount.overrun++;			rsr &= uap->port.read_status_mask;			if (rsr & UART01x_RSR_BE)				flag = TTY_BREAK;			else if (rsr & UART01x_RSR_PE)				flag = TTY_PARITY;			else if (rsr & UART01x_RSR_FE)				flag = TTY_FRAME;		}		if (uart_handle_sysrq_char(&uap->port, ch, regs))			goto ignore_char;		uart_insert_char(&uap->port, rsr, UART01x_RSR_OE, ch, flag);	ignore_char:		status = readw(uap->port.membase + UART01x_FR);	}	tty_flip_buffer_push(tty);	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b63d4f0fb80918ab37b6c0ee1adcd49e05c9994c/amba-pl011.c/clean/drivers/serial/amba-pl011.c