if ((rsr & port->ignore_status_mask) == 0) { tty_insert_flip_char(tty, ch, flag); } if ((rsr & UART01x_RSR_OE) && tty->flip.count < TTY_FLIPBUF_SIZE) { /* * Overrun is special, since it's reported * immediately, and doesn't affect the current * character */ tty_insert_flip_char(tty, 0, TTY_OVERRUN); } 
uart_insert_char(port, rsr, UART01x_RSR_OE, ch, flag);  
pl010_rx_chars(struct uart_port *port)#endif{	struct tty_struct *tty = port->info->tty;	unsigned int status, ch, flag, rsr, max_count = 256;	status = UART_GET_FR(port);	while (UART_RX_DATA(status) && 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 = UART_GET_CHAR(port);		flag = TTY_NORMAL;		port->icount.rx++;		/*		 * Note that the error handling code is		 * out of the main execution path		 */		rsr = UART_GET_RSR(port) | UART_DUMMY_RSR_RX;		if (unlikely(rsr & UART01x_RSR_ANY)) {			if (rsr & UART01x_RSR_BE) {				rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE);				port->icount.brk++;				if (uart_handle_break(port))					goto ignore_char;			} else if (rsr & UART01x_RSR_PE)				port->icount.parity++;			else if (rsr & UART01x_RSR_FE)				port->icount.frame++;			if (rsr & UART01x_RSR_OE)				port->icount.overrun++;			rsr &= 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(port, ch, regs))			goto ignore_char;		if ((rsr & port->ignore_status_mask) == 0) {			tty_insert_flip_char(tty, ch, flag);		}		if ((rsr & UART01x_RSR_OE) &&		    tty->flip.count < TTY_FLIPBUF_SIZE) {			/*			 * Overrun is special, since it's reported			 * immediately, and doesn't affect the current			 * character			 */			tty_insert_flip_char(tty, 0, TTY_OVERRUN);		}	ignore_char:		status = UART_GET_FR(port);	}	tty_flip_buffer_push(tty);	return;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/05ab3014636ff60a319d37cdf37dca594b015eec/amba-pl010.c/clean/drivers/serial/amba-pl010.c