uart_update_timeout(port, termios->c_cflag, quot); 
uart_update_timeout(port, termios->c_cflag, baud); 
serial_pxa_set_termios(struct uart_port *port, struct termios *termios,		       struct termios *old){	struct uart_pxa_port *up = (struct uart_pxa_port *)port;	unsigned char cval, fcr = 0;	unsigned long flags;	unsigned int baud, quot;	switch (termios->c_cflag & CSIZE) {	case CS5:		cval = UART_LCR_WLEN5;		break;	case CS6:		cval = UART_LCR_WLEN6;		break;	case CS7:		cval = UART_LCR_WLEN7;		break;	default:	case CS8:		cval = UART_LCR_WLEN8;		break;	}	if (termios->c_cflag & CSTOPB)		cval |= UART_LCR_STOP;	if (termios->c_cflag & PARENB)		cval |= UART_LCR_PARITY;	if (!(termios->c_cflag & PARODD))		cval |= UART_LCR_EPAR;	/*	 * Ask the core to calculate the divisor for us.	 */	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);	quot = uart_get_divisor(port, baud);	if ((up->port.uartclk / quot) < (2400 * 16))		fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR1;	else		fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR8;	/*	 * Ok, we're now changing the port state.  Do it with	 * interrupts disabled.	 */	spin_lock_irqsave(&up->port.lock, flags);	/*	 * Ensure the port will be enabled.	 * This is required especially for serial console.	 */	up->ier |= IER_UUE;	/*	 * Update the per-port timeout.	 */	uart_update_timeout(port, termios->c_cflag, quot);	up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;	if (termios->c_iflag & INPCK)		up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;	if (termios->c_iflag & (BRKINT | PARMRK))		up->port.read_status_mask |= UART_LSR_BI;	/*	 * Characters to ignore	 */	up->port.ignore_status_mask = 0;	if (termios->c_iflag & IGNPAR)		up->port.ignore_status_mask |= UART_LSR_PE | UART_LSR_FE;	if (termios->c_iflag & IGNBRK) {		up->port.ignore_status_mask |= UART_LSR_BI;		/*		 * If we're ignoring parity and break indicators,		 * ignore overruns too (for real raw support).		 */		if (termios->c_iflag & IGNPAR)			up->port.ignore_status_mask |= UART_LSR_OE;	}	/*	 * ignore all characters if CREAD is not set	 */	if ((termios->c_cflag & CREAD) == 0)		up->port.ignore_status_mask |= UART_LSR_DR;	/*	 * CTS flow control flag and modem status interrupts	 */	up->ier &= ~UART_IER_MSI;	if (UART_ENABLE_MS(&up->port, termios->c_cflag))		up->ier |= UART_IER_MSI;	serial_out(up, UART_IER, up->ier);	serial_out(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */	serial_out(up, UART_DLL, quot & 0xff);		/* LS of divisor */	serial_out(up, UART_DLM, quot >> 8);		/* MS of divisor */	serial_out(up, UART_LCR, cval);		/* reset DLAB */	up->lcr = cval;					/* Save LCR */	serial_pxa_set_mctrl(&up->port, up->port.mctrl);	serial_out(up, UART_FCR, fcr);	spin_unlock_irqrestore(&up->port.lock, flags);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e6158b4a5647624ceb90074bfcc248ea3152c906/pxa.c/buggy/drivers/serial/pxa.c