1
0
Fork 0

[PATCH] Altix ioc4 serial - small uart setup mods

Small mods for setting up the uart - parity, flow control

Signed-off-by: Patrick Gefre <pfg@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
wifi-calibration
Patrick Gefre 2005-05-01 08:59:21 -07:00 committed by Linus Torvalds
parent 6cb2875f8d
commit 68985e486b
1 changed files with 8 additions and 20 deletions

View File

@ -1688,8 +1688,8 @@ ioc4_change_speed(struct uart_port *the_port,
{
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;
unsigned cflag;
int new_parity = 0, new_parity_enable = 0, new_stop = 0, new_data = 8;
struct uart_info *info = the_port->info;
cflag = new_termios->c_cflag;
@ -1697,48 +1697,35 @@ ioc4_change_speed(struct uart_port *the_port,
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;
if (cflag & PARODD)
new_parity = 1;
}
baud = uart_get_baud_rate(the_port, new_termios, old_termios,
MIN_BAUD_SUPPORTED, MAX_BAUD_SUPPORTED);
@ -1771,10 +1758,12 @@ ioc4_change_speed(struct uart_port *the_port,
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
else {
info->flags &= ~ASYNC_CTS_FLOW;
port->ip_sscr &= ~IOC4_SSCR_HFC_EN;
}
writel(port->ip_sscr, &port->ip_serial_regs->sscr);
/* Set the configuration and proper notification call */
DPRINT_CONFIG(("%s : port 0x%p cflag 0%o "
@ -1847,7 +1836,6 @@ static void ioc4_cb_output_lowat(struct ioc4_port *port)
}
}
/**
* handle_intr - service any interrupts for the given port - 2nd level
* called via sd_intr