summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/tty/serial/omap-serial.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index 178fc097af1..8ec43253e64 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -1756,6 +1756,8 @@ static int serial_omap_runtime_suspend(struct device *dev)
if (!up)
return -EINVAL;
+ if (up->pin_idle)
+ pinctrl_select_state(up->pins, up->pin_idle);
up->context_loss_cnt = serial_omap_get_context_loss_count(up);
if (device_may_wakeup(dev)) {
@@ -1765,9 +1767,6 @@ static int serial_omap_runtime_suspend(struct device *dev)
up->latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE;
serial_omap_uart_qos(up);
- if (up->pin_idle)
- pinctrl_select_state(up->pins, up->pin_idle);
-
return 0;
}
@@ -1776,9 +1775,6 @@ static int serial_omap_runtime_resume(struct device *dev)
int loss_cnt;
struct uart_omap_port *up = dev_get_drvdata(dev);
- if (up->pin_default && up->pin_idle)
- pinctrl_select_state(up->pins, up->pin_default);
-
loss_cnt = serial_omap_get_context_loss_count(up);
if (loss_cnt < 0) {
serial_omap_restore_context(up);
@@ -1791,6 +1787,9 @@ static int serial_omap_runtime_resume(struct device *dev)
}
up->latency = up->calc_latency;
serial_omap_uart_qos(up);
+ if (up->pin_default && up->pin_idle)
+ pinctrl_select_state(up->pins, up->pin_default);
+
return 0;
}
#endif