Commit 7b18bd52 authored by Dirk Brandewie's avatar Dirk Brandewie Committed by Greg Kroah-Hartman

max3110: wake up fixes

The main thread is waiting on on a wait_queue but wake_up_process() is
used to wake the thread. This reads weirdly. Change wake_up_process() to
wake_up().

Tested on the Moorestown tablet build
Signed-off-by: default avatarDirk Brandewie <dirk.brandewie@gmail.com>
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f17141fd
...@@ -207,7 +207,7 @@ static void serial_m3110_con_write(struct console *co, ...@@ -207,7 +207,7 @@ static void serial_m3110_con_write(struct console *co,
uart_console_write(&pmax->port, s, count, serial_m3110_con_putchar); uart_console_write(&pmax->port, s, count, serial_m3110_con_putchar);
if (!test_and_set_bit(CON_TX_NEEDED, &pmax->uart_flags)) if (!test_and_set_bit(CON_TX_NEEDED, &pmax->uart_flags))
wake_up_process(pmax->main_thread); wake_up(&pmax->wq);
} }
static int __init static int __init
...@@ -301,6 +301,7 @@ static void send_circ_buf(struct uart_max3110 *max, ...@@ -301,6 +301,7 @@ static void send_circ_buf(struct uart_max3110 *max,
} }
/* Fail to send msg to console is not very critical */ /* Fail to send msg to console is not very critical */
ret = max3110_write_then_read(max, obuf, ibuf, blen, 0); ret = max3110_write_then_read(max, obuf, ibuf, blen, 0);
if (ret) if (ret)
pr_warning(PR_FMT "%s(): get err msg %d\n", pr_warning(PR_FMT "%s(): get err msg %d\n",
...@@ -349,7 +350,7 @@ static void serial_m3110_start_tx(struct uart_port *port) ...@@ -349,7 +350,7 @@ static void serial_m3110_start_tx(struct uart_port *port)
container_of(port, struct uart_max3110, port); container_of(port, struct uart_max3110, port);
if (!test_and_set_bit(UART_TX_NEEDED, &max->uart_flags)) 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) static void receive_chars(struct uart_max3110 *max, unsigned char *str, int len)
...@@ -424,7 +425,8 @@ static int max3110_main_thread(void *_max) ...@@ -424,7 +425,8 @@ static int max3110_main_thread(void *_max)
pr_info(PR_FMT "start main thread\n"); pr_info(PR_FMT "start main thread\n");
do { 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); mutex_lock(&max->thread_mutex);
...@@ -452,8 +454,9 @@ static irqreturn_t serial_m3110_irq(int irq, void *dev_id) ...@@ -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, /* max3110's irq is a falling edge, not level triggered,
* so no need to disable the irq */ * so no need to disable the irq */
if (!test_and_set_bit(BIT_IRQ_PENDING, &max->uart_flags)) if (!test_and_set_bit(BIT_IRQ_PENDING, &max->uart_flags))
wake_up_process(max->main_thread); wake_up(&max->wq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment