===================================================================
@@ -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,