From 472224fdeee6e3b8f47cde650eedd1f7bcdc6e99 Mon Sep 17 00:00:00 2001 From: Dirk Brandewie Date: Fri, 26 Aug 2011 11:24:49 +0100 Subject: [PATCH] --- yaml --- r: 267323 b: refs/heads/master c: 7b18bd52b2c63ea030364370d0d1f5cc6950aea7 h: refs/heads/master i: 267321: e725350583dc5f380b4c7965951b52441ecc4793 267319: 2ca2a04836cd6c9d9dad79eb490d3bf4894f2839 v: v3 --- [refs] | 2 +- trunk/drivers/tty/serial/mrst_max3110.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 6ac5076cfdbb..25995d1d1854 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f17141fdd407de78379222dd59d6f161437db4c8 +refs/heads/master: 7b18bd52b2c63ea030364370d0d1f5cc6950aea7 diff --git a/trunk/drivers/tty/serial/mrst_max3110.c b/trunk/drivers/tty/serial/mrst_max3110.c index a764bf99743b..c8f986876229 100644 --- a/trunk/drivers/tty/serial/mrst_max3110.c +++ b/trunk/drivers/tty/serial/mrst_max3110.c @@ -207,7 +207,7 @@ static void serial_m3110_con_write(struct console *co, uart_console_write(&pmax->port, s, count, serial_m3110_con_putchar); if (!test_and_set_bit(CON_TX_NEEDED, &pmax->uart_flags)) - wake_up_process(pmax->main_thread); + wake_up(&pmax->wq); } static int __init @@ -301,6 +301,7 @@ static void send_circ_buf(struct uart_max3110 *max, } /* Fail to send msg to console is not very critical */ + ret = max3110_write_then_read(max, obuf, ibuf, blen, 0); if (ret) pr_warning(PR_FMT "%s(): get err msg %d\n", @@ -349,7 +350,7 @@ static void serial_m3110_start_tx(struct uart_port *port) container_of(port, struct uart_max3110, port); if (!test_and_set_bit(UART_TX_NEEDED, &max->uart_flags)) - wake_up_process(max->main_thread); + wake_up(&max->wq); } static void receive_chars(struct uart_max3110 *max, unsigned char *str, int len) @@ -424,7 +425,8 @@ static int max3110_main_thread(void *_max) pr_info(PR_FMT "start main thread\n"); do { - wait_event_interruptible(*wq, max->uart_flags || kthread_should_stop()); + wait_event_interruptible(*wq, + max->uart_flags || kthread_should_stop()); mutex_lock(&max->thread_mutex); @@ -452,8 +454,9 @@ static irqreturn_t serial_m3110_irq(int irq, void *dev_id) /* max3110's irq is a falling edge, not level triggered, * so no need to disable the irq */ + if (!test_and_set_bit(BIT_IRQ_PENDING, &max->uart_flags)) - wake_up_process(max->main_thread); + wake_up(&max->wq); return IRQ_HANDLED; }