projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TTY: switch tty_flip_buffer_push
[linux-2.6-block.git]
/
drivers
/
tty
/
serial
/
bfin_sport_uart.c
diff --git
a/drivers/tty/serial/bfin_sport_uart.c
b/drivers/tty/serial/bfin_sport_uart.c
index f5d117379b605653b4e8641e94490b92723e2eb4..487c173b0f72f107f1c671175908e47936f98186 100644
(file)
--- a/
drivers/tty/serial/bfin_sport_uart.c
+++ b/
drivers/tty/serial/bfin_sport_uart.c
@@
-149,7
+149,7
@@
static int sport_uart_setup(struct sport_uart_port *up, int size, int baud_rate)
static irqreturn_t sport_uart_rx_irq(int irq, void *dev_id)
{
struct sport_uart_port *up = dev_id;
static irqreturn_t sport_uart_rx_irq(int irq, void *dev_id)
{
struct sport_uart_port *up = dev_id;
- struct tty_
struct *tty = up->port.state->port.tty
;
+ struct tty_
port *port = &up->port.state->port
;
unsigned int ch;
spin_lock(&up->port.lock);
unsigned int ch;
spin_lock(&up->port.lock);
@@
-159,9
+159,10
@@
static irqreturn_t sport_uart_rx_irq(int irq, void *dev_id)
up->port.icount.rx++;
if (!uart_handle_sysrq_char(&up->port, ch))
up->port.icount.rx++;
if (!uart_handle_sysrq_char(&up->port, ch))
- tty_insert_flip_char(
tty
, ch, TTY_NORMAL);
+ tty_insert_flip_char(
port
, ch, TTY_NORMAL);
}
}
- tty_flip_buffer_push(tty);
+ /* XXX this won't deadlock with lowlat? */
+ tty_flip_buffer_push(port);
spin_unlock(&up->port.lock);
spin_unlock(&up->port.lock);
@@
-182,7
+183,6
@@
static irqreturn_t sport_uart_tx_irq(int irq, void *dev_id)
static irqreturn_t sport_uart_err_irq(int irq, void *dev_id)
{
struct sport_uart_port *up = dev_id;
static irqreturn_t sport_uart_err_irq(int irq, void *dev_id)
{
struct sport_uart_port *up = dev_id;
- struct tty_struct *tty = up->port.state->port.tty;
unsigned int stat = SPORT_GET_STAT(up);
spin_lock(&up->port.lock);
unsigned int stat = SPORT_GET_STAT(up);
spin_lock(&up->port.lock);
@@
-190,7
+190,7
@@
static irqreturn_t sport_uart_err_irq(int irq, void *dev_id)
/* Overflow in RX FIFO */
if (stat & ROVF) {
up->port.icount.overrun++;
/* Overflow in RX FIFO */
if (stat & ROVF) {
up->port.icount.overrun++;
- tty_insert_flip_char(
tty
, 0, TTY_OVERRUN);
+ tty_insert_flip_char(
&up->port.state->port
, 0, TTY_OVERRUN);
SPORT_PUT_STAT(up, ROVF); /* Clear ROVF bit */
}
/* These should not happen */
SPORT_PUT_STAT(up, ROVF); /* Clear ROVF bit */
}
/* These should not happen */
@@
-205,6
+205,8
@@
static irqreturn_t sport_uart_err_irq(int irq, void *dev_id)
SSYNC();
spin_unlock(&up->port.lock);
SSYNC();
spin_unlock(&up->port.lock);
+ /* XXX we don't push the overrun bit to TTY? */
+
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}