[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201108202133.09222.rjw@sisk.pl>
Date: Sat, 20 Aug 2011 21:33:09 +0200
From: "Rafael J. Wysocki" <rjw@...k.pl>
To: linux-sh@...r.kernel.org
Cc: Linux PM mailing list <linux-pm@...ts.linux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>,
Magnus Damm <magnus.damm@...il.com>
Subject: [PATCH 2/2] sh-sci / PM: Use power.irq_safe
From: Rafael J. Wysocki <rjw@...k.pl>
Since sci_port_enable() and sci_port_disable() may be run with
interrupts off and they execute pm_runtime_get_sync() and
pm_runtime_put_sync(), respectively, the SCI device's
power.irq_safe flags has to be used to indicate that it is safe
to execute runtime PM callbacks for this device with interrupts off.
Signed-off-by: Rafael J. Wysocki <rjw@...k.pl>
---
drivers/tty/serial/sh-sci.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
Index: linux/drivers/tty/serial/sh-sci.c
===================================================================
--- linux.orig/drivers/tty/serial/sh-sci.c
+++ linux/drivers/tty/serial/sh-sci.c
@@ -1582,11 +1582,15 @@ static int sci_startup(struct uart_port
dev_dbg(port->dev, "%s(%d)\n", __func__, port->line);
+ pm_runtime_irq_safe(port->dev);
+
sci_port_enable(s);
ret = sci_request_irq(s);
- if (unlikely(ret < 0))
+ if (unlikely(ret < 0)) {
+ pm_runtime_irq_unsafe(port->dev);
return ret;
+ }
sci_request_dma(port);
@@ -1609,6 +1613,8 @@ static void sci_shutdown(struct uart_por
sci_free_irq(s);
sci_port_disable(s);
+
+ pm_runtime_irq_unsafe(port->dev);
}
static unsigned int sci_scbrr_calc(unsigned int algo_id, unsigned int bps,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists