diff options
author | Patrick Gefre <pfg@sgi.com> | 2005-05-01 11:59:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-01 11:59:21 -0400 |
commit | 149733d4e274ce1add3399cabdb243116ebfdf79 (patch) | |
tree | 2e34d1ea62154b4e37f7b69a35c66edbfe36257f /drivers/serial/ioc4_serial.c | |
parent | 10e92060295ded7b8feac1ee57bb2135ea9ac207 (diff) |
[PATCH] Altix ioc4 serial - set hfc from ioctl
Allow hardware flow control to be set from an ioctl.
Signed-off-by: Patrick Gefre <pfg@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/serial/ioc4_serial.c')
-rw-r--r-- | drivers/serial/ioc4_serial.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c index d054f1265701..f94d2e712cad 100644 --- a/drivers/serial/ioc4_serial.c +++ b/drivers/serial/ioc4_serial.c | |||
@@ -1765,8 +1765,11 @@ ioc4_change_speed(struct uart_port *the_port, | |||
1765 | the_port->ignore_status_mask &= ~N_DATA_READY; | 1765 | the_port->ignore_status_mask &= ~N_DATA_READY; |
1766 | } | 1766 | } |
1767 | 1767 | ||
1768 | if (cflag & CRTSCTS) | 1768 | if (cflag & CRTSCTS) { |
1769 | info->flags |= ASYNC_CTS_FLOW; | 1769 | info->flags |= ASYNC_CTS_FLOW; |
1770 | port->ip_sscr |= IOC4_SSCR_HFC_EN; | ||
1771 | writel(port->ip_sscr, &port->ip_serial_regs->sscr); | ||
1772 | } | ||
1770 | else | 1773 | else |
1771 | info->flags &= ~ASYNC_CTS_FLOW; | 1774 | info->flags &= ~ASYNC_CTS_FLOW; |
1772 | 1775 | ||
@@ -1825,12 +1828,6 @@ static inline int ic4_startup_local(struct uart_port *the_port) | |||
1825 | /* set the speed of the serial port */ | 1828 | /* set the speed of the serial port */ |
1826 | ioc4_change_speed(the_port, info->tty->termios, (struct termios *)0); | 1829 | ioc4_change_speed(the_port, info->tty->termios, (struct termios *)0); |
1827 | 1830 | ||
1828 | /* enable hardware flow control - after ioc4_change_speed because | ||
1829 | * ASYNC_CTS_FLOW is set there */ | ||
1830 | if (info->flags & ASYNC_CTS_FLOW) { | ||
1831 | port->ip_sscr |= IOC4_SSCR_HFC_EN; | ||
1832 | writel(port->ip_sscr, &port->ip_serial_regs->sscr); | ||
1833 | } | ||
1834 | info->flags |= UIF_INITIALIZED; | 1831 | info->flags |= UIF_INITIALIZED; |
1835 | return 0; | 1832 | return 0; |
1836 | } | 1833 | } |