diff options
| author | Jim Wylder <jwylder@motorola.com> | 2014-07-28 16:21:09 -0500 |
|---|---|---|
| committer | Jim Wylder <jwylder@motorola.com> | 2014-07-28 16:59:35 -0500 |
| commit | 62c90d667b9b067336a4505f83b0b9c1e11b9539 (patch) | |
| tree | 68c5aeb9f17310f1d2528686a7d816fd4ddbfa18 | |
| parent | 043567cd79eb156efdc67f9f64424eb360084dc0 (diff) | |
| download | olio-linux-3.10-62c90d667b9b067336a4505f83b0b9c1e11b9539.tar.xz olio-linux-3.10-62c90d667b9b067336a4505f83b0b9c1e11b9539.zip | |
IKXCLOCK-3293 tty: omap: set RTS low later in resume
RTS should be set high whenever we are unable to quickly
respond to data from the BT chip. Move the set and release
to earlier in runtime_suspend and later in runtime_resume
to minimize the time RTS is low during state transitions.
Change-Id: I15e21dc8456c12f37ebf4d55675e6dcaf9a46f81
Signed-off-by: Jim Wylder <jwylder@motorola.com>
| -rw-r--r-- | drivers/tty/serial/omap-serial.c | 11 |
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 |