cval |= 0x04; 
ioc4_change_speed(struct uart_port *the_port,		  struct termios *new_termios, struct termios *old_termios){	struct ioc4_port *port = get_ioc4_port(the_port);	int baud, bits;	unsigned cflag, cval;	int new_parity = 0, new_parity_enable = 0, new_stop = 1, new_data = 8;	struct uart_info *info = the_port->info;	cflag = new_termios->c_cflag;	switch (cflag & CSIZE) {	case CS5:		new_data = 5;		cval = 0x00;		bits = 7;		break;	case CS6:		new_data = 6;		cval = 0x01;		bits = 8;		break;	case CS7:		new_data = 7;		cval = 0x02;		bits = 9;		break;	case CS8:		new_data = 8;		cval = 0x03;		bits = 10;		break;	default:		/* cuz we always need a default ... */		new_data = 5;		cval = 0x00;		bits = 7;		break;	}	if (cflag & CSTOPB) {		cval |= 0x04;		bits++;		new_stop = 1;	}	if (cflag & PARENB) {		cval |= UART_LCR_PARITY;		bits++;		new_parity_enable = 1;	}	if (cflag & PARODD) {		cval |= UART_LCR_EPAR;		new_parity = 1;	}	if (cflag & IGNPAR) {		cval &= ~UART_LCR_PARITY;		new_parity_enable = 0;	}	baud = uart_get_baud_rate(the_port, new_termios, old_termios,				MIN_BAUD_SUPPORTED, MAX_BAUD_SUPPORTED);	DPRINT_CONFIG(("%s: returned baud %d\n", __FUNCTION__, baud));	/* default is 9600 */	if (!baud)		baud = 9600;	if (!the_port->fifosize)		the_port->fifosize = IOC4_MAX_CHARS;	the_port->timeout = ((the_port->fifosize * HZ * bits) / (baud / 10));	the_port->timeout += HZ / 50;	/* Add .02 seconds of slop */	the_port->ignore_status_mask = N_ALL_INPUT;	if (I_IGNPAR(info->tty))		the_port->ignore_status_mask &= ~(N_PARITY_ERROR						| N_FRAMING_ERROR);	if (I_IGNBRK(info->tty)) {		the_port->ignore_status_mask &= ~N_BREAK;		if (I_IGNPAR(info->tty))			the_port->ignore_status_mask &= ~N_OVERRUN_ERROR;	}	if (!(cflag & CREAD)) {		/* ignore everything */		the_port->ignore_status_mask &= ~N_DATA_READY;	}	if (cflag & CRTSCTS) {		info->flags |= ASYNC_CTS_FLOW;		port->ip_sscr |= IOC4_SSCR_HFC_EN;		writel(port->ip_sscr, &port->ip_serial_regs->sscr);	}	else		info->flags &= ~ASYNC_CTS_FLOW;	/* Set the configuration and proper notification call */	DPRINT_CONFIG(("%s : port 0x%p cflag 0%o "		"config_port(baud %d data %d stop %d p enable %d parity %d),"		" notification 0x%x\n",	     __FUNCTION__, (void *)port, cflag, baud, new_data, new_stop,	     new_parity_enable, new_parity, the_port->ignore_status_mask));	if ((config_port(port, baud,		/* baud */			 new_data,		/* byte size */			 new_stop,		/* stop bits */			 new_parity_enable,	/* set parity */			 new_parity)) >= 0) {	/* parity 1==odd */		set_notification(port, the_port->ignore_status_mask, 1);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/68985e486b708671a7c7d0b4de6d94a1547d1351/ioc4_serial.c/buggy/drivers/serial/ioc4_serial.c