diff options
Diffstat (limited to 'drivers/char/mxser.c')
-rw-r--r-- | drivers/char/mxser.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c index 13f8871e5b21..52d953eb30c3 100644 --- a/drivers/char/mxser.c +++ b/drivers/char/mxser.c | |||
@@ -547,14 +547,18 @@ static int mxser_carrier_raised(struct tty_port *port) | |||
547 | return (inb(mp->ioaddr + UART_MSR) & UART_MSR_DCD)?1:0; | 547 | return (inb(mp->ioaddr + UART_MSR) & UART_MSR_DCD)?1:0; |
548 | } | 548 | } |
549 | 549 | ||
550 | static void mxser_raise_dtr_rts(struct tty_port *port) | 550 | static void mxser_dtr_rts(struct tty_port *port, int on) |
551 | { | 551 | { |
552 | struct mxser_port *mp = container_of(port, struct mxser_port, port); | 552 | struct mxser_port *mp = container_of(port, struct mxser_port, port); |
553 | unsigned long flags; | 553 | unsigned long flags; |
554 | 554 | ||
555 | spin_lock_irqsave(&mp->slock, flags); | 555 | spin_lock_irqsave(&mp->slock, flags); |
556 | outb(inb(mp->ioaddr + UART_MCR) | | 556 | if (on) |
557 | UART_MCR_DTR | UART_MCR_RTS, mp->ioaddr + UART_MCR); | 557 | outb(inb(mp->ioaddr + UART_MCR) | |
558 | UART_MCR_DTR | UART_MCR_RTS, mp->ioaddr + UART_MCR); | ||
559 | else | ||
560 | outb(inb(mp->ioaddr + UART_MCR)&~(UART_MCR_DTR | UART_MCR_RTS), | ||
561 | mp->ioaddr + UART_MCR); | ||
558 | spin_unlock_irqrestore(&mp->slock, flags); | 562 | spin_unlock_irqrestore(&mp->slock, flags); |
559 | } | 563 | } |
560 | 564 | ||
@@ -1044,8 +1048,6 @@ static int mxser_open(struct tty_struct *tty, struct file *filp) | |||
1044 | if (retval) | 1048 | if (retval) |
1045 | return retval; | 1049 | return retval; |
1046 | 1050 | ||
1047 | /* unmark here for very high baud rate (ex. 921600 bps) used */ | ||
1048 | tty->low_latency = 1; | ||
1049 | return 0; | 1051 | return 0; |
1050 | } | 1052 | } |
1051 | 1053 | ||
@@ -2356,7 +2358,7 @@ static const struct tty_operations mxser_ops = { | |||
2356 | 2358 | ||
2357 | struct tty_port_operations mxser_port_ops = { | 2359 | struct tty_port_operations mxser_port_ops = { |
2358 | .carrier_raised = mxser_carrier_raised, | 2360 | .carrier_raised = mxser_carrier_raised, |
2359 | .raise_dtr_rts = mxser_raise_dtr_rts, | 2361 | .dtr_rts = mxser_dtr_rts, |
2360 | }; | 2362 | }; |
2361 | 2363 | ||
2362 | /* | 2364 | /* |