diff options
Diffstat (limited to 'drivers/serial/ioc4_serial.c')
-rw-r--r-- | drivers/serial/ioc4_serial.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c index 1d85533d46d2..a37579ce6d76 100644 --- a/drivers/serial/ioc4_serial.c +++ b/drivers/serial/ioc4_serial.c | |||
@@ -1717,11 +1717,9 @@ ioc4_change_speed(struct uart_port *the_port, | |||
1717 | } | 1717 | } |
1718 | 1718 | ||
1719 | if (cflag & CRTSCTS) { | 1719 | if (cflag & CRTSCTS) { |
1720 | info->flags |= ASYNC_CTS_FLOW; | ||
1721 | port->ip_sscr |= IOC4_SSCR_HFC_EN; | 1720 | port->ip_sscr |= IOC4_SSCR_HFC_EN; |
1722 | } | 1721 | } |
1723 | else { | 1722 | else { |
1724 | info->flags &= ~ASYNC_CTS_FLOW; | ||
1725 | port->ip_sscr &= ~IOC4_SSCR_HFC_EN; | 1723 | port->ip_sscr &= ~IOC4_SSCR_HFC_EN; |
1726 | } | 1724 | } |
1727 | writel(port->ip_sscr, &port->ip_serial_regs->sscr); | 1725 | writel(port->ip_sscr, &port->ip_serial_regs->sscr); |
@@ -1760,18 +1758,6 @@ static inline int ic4_startup_local(struct uart_port *the_port) | |||
1760 | 1758 | ||
1761 | info = the_port->info; | 1759 | info = the_port->info; |
1762 | 1760 | ||
1763 | if (info->tty) { | ||
1764 | set_bit(TTY_IO_ERROR, &info->tty->flags); | ||
1765 | clear_bit(TTY_IO_ERROR, &info->tty->flags); | ||
1766 | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI) | ||
1767 | info->tty->alt_speed = 57600; | ||
1768 | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI) | ||
1769 | info->tty->alt_speed = 115200; | ||
1770 | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_SHI) | ||
1771 | info->tty->alt_speed = 230400; | ||
1772 | if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_WARP) | ||
1773 | info->tty->alt_speed = 460800; | ||
1774 | } | ||
1775 | local_open(port); | 1761 | local_open(port); |
1776 | 1762 | ||
1777 | /* set the speed of the serial port */ | 1763 | /* set the speed of the serial port */ |
@@ -2315,7 +2301,6 @@ static void receive_chars(struct uart_port *the_port) | |||
2315 | int read_count, request_count = IOC4_MAX_CHARS; | 2301 | int read_count, request_count = IOC4_MAX_CHARS; |
2316 | struct uart_icount *icount; | 2302 | struct uart_icount *icount; |
2317 | struct uart_info *info = the_port->info; | 2303 | struct uart_info *info = the_port->info; |
2318 | int flip = 0; | ||
2319 | unsigned long pflags; | 2304 | unsigned long pflags; |
2320 | 2305 | ||
2321 | /* Make sure all the pointers are "good" ones */ | 2306 | /* Make sure all the pointers are "good" ones */ |
@@ -2327,7 +2312,7 @@ static void receive_chars(struct uart_port *the_port) | |||
2327 | spin_lock_irqsave(&the_port->lock, pflags); | 2312 | spin_lock_irqsave(&the_port->lock, pflags); |
2328 | tty = info->tty; | 2313 | tty = info->tty; |
2329 | 2314 | ||
2330 | request_count = tty_buffer_request_room(tty, IOC4_MAX_CHARS - 2); | 2315 | request_count = tty_buffer_request_room(tty, IOC4_MAX_CHARS); |
2331 | 2316 | ||
2332 | if (request_count > 0) { | 2317 | if (request_count > 0) { |
2333 | icount = &the_port->icount; | 2318 | icount = &the_port->icount; |
@@ -2340,8 +2325,7 @@ static void receive_chars(struct uart_port *the_port) | |||
2340 | 2325 | ||
2341 | spin_unlock_irqrestore(&the_port->lock, pflags); | 2326 | spin_unlock_irqrestore(&the_port->lock, pflags); |
2342 | 2327 | ||
2343 | if (flip) | 2328 | tty_flip_buffer_push(tty); |
2344 | tty_flip_buffer_push(tty); | ||
2345 | } | 2329 | } |
2346 | 2330 | ||
2347 | /** | 2331 | /** |