mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
[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>
This commit is contained in:
parent
6cb2875f8d
commit
68985e486b
1 changed files with 8 additions and 20 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue