From 5f370de510d98a3638af55dc6df11e49cc0238e7 Mon Sep 17 00:00:00 2001 From: Felipe Balbi Date: Thu, 6 Sep 2012 15:45:36 +0300 Subject: [PATCH] --- yaml --- r: 325737 b: refs/heads/master c: a6b19c333c2f100f32e07d5209cf9f0b4f81b6eb h: refs/heads/master i: 325735: 6829f24757fd4c9a12d4739a8bcd3d03aec10564 v: v3 --- [refs] | 2 +- trunk/drivers/tty/serial/omap-serial.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 5a2413cc0ba4..8717f51ec95d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9727faf4706eb49ce88e3f2bb961278a84eac080 +refs/heads/master: a6b19c333c2f100f32e07d5209cf9f0b4f81b6eb diff --git a/trunk/drivers/tty/serial/omap-serial.c b/trunk/drivers/tty/serial/omap-serial.c index 7531147fbd38..6a58f4f64f81 100644 --- a/trunk/drivers/tty/serial/omap-serial.c +++ b/trunk/drivers/tty/serial/omap-serial.c @@ -1005,12 +1005,17 @@ static int serial_omap_poll_get_char(struct uart_port *port) pm_runtime_get_sync(up->dev); status = serial_in(up, UART_LSR); - if (!(status & UART_LSR_DR)) - return NO_POLL_CHAR; + if (!(status & UART_LSR_DR)) { + status = NO_POLL_CHAR; + goto out; + } status = serial_in(up, UART_RX); + +out: pm_runtime_mark_last_busy(up->dev); pm_runtime_put_autosuspend(up->dev); + return status; }