aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/omap-serial.c
diff options
context:
space:
mode:
authorSourav Poddar <sourav.poddar@ti.com>2012-09-18 07:35:54 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-21 12:57:41 -0400
commitac57e7f38ea6fe7358cd0b7a2f2d21aef5ab70cd (patch)
treed6b21660fff025ab6f020fc9f54cfcac201c92aa /drivers/tty/serial/omap-serial.c
parent034dc4db6fefa8b9b55a20e816a05f132fdd56bc (diff)
serial: omap: Remove unnecessary checks from suspend/resume
Drop the check for "up" being valid on suspend/resume callbacks. It should be valid always. Get rid of the "pdata" check also as serial_omap_get_context_loss_count() checks for it. Tested on omap4 panda and 3630 based Beagle board. Signed-off-by: Sourav Poddar <sourav.poddar@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/omap-serial.c')
-rw-r--r--drivers/tty/serial/omap-serial.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index f175385bb304..3c05c5ecdfbf 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -1222,10 +1222,8 @@ static int serial_omap_suspend(struct device *dev)
1222{ 1222{
1223 struct uart_omap_port *up = dev_get_drvdata(dev); 1223 struct uart_omap_port *up = dev_get_drvdata(dev);
1224 1224
1225 if (up) { 1225 uart_suspend_port(&serial_omap_reg, &up->port);
1226 uart_suspend_port(&serial_omap_reg, &up->port); 1226 flush_work_sync(&up->qos_work);
1227 flush_work_sync(&up->qos_work);
1228 }
1229 1227
1230 return 0; 1228 return 0;
1231} 1229}
@@ -1234,8 +1232,8 @@ static int serial_omap_resume(struct device *dev)
1234{ 1232{
1235 struct uart_omap_port *up = dev_get_drvdata(dev); 1233 struct uart_omap_port *up = dev_get_drvdata(dev);
1236 1234
1237 if (up) 1235 uart_resume_port(&serial_omap_reg, &up->port);
1238 uart_resume_port(&serial_omap_reg, &up->port); 1236
1239 return 0; 1237 return 0;
1240} 1238}
1241#endif 1239#endif
@@ -1553,17 +1551,14 @@ static int serial_omap_runtime_suspend(struct device *dev)
1553static int serial_omap_runtime_resume(struct device *dev) 1551static int serial_omap_runtime_resume(struct device *dev)
1554{ 1552{
1555 struct uart_omap_port *up = dev_get_drvdata(dev); 1553 struct uart_omap_port *up = dev_get_drvdata(dev);
1556 struct omap_uart_port_info *pdata = dev->platform_data;
1557 1554
1558 if (up && pdata) { 1555 u32 loss_cnt = serial_omap_get_context_loss_count(up);
1559 u32 loss_cnt = serial_omap_get_context_loss_count(up);
1560 1556
1561 if (up->context_loss_cnt != loss_cnt) 1557 if (up->context_loss_cnt != loss_cnt)
1562 serial_omap_restore_context(up); 1558 serial_omap_restore_context(up);
1563 1559
1564 up->latency = up->calc_latency; 1560 up->latency = up->calc_latency;
1565 schedule_work(&up->qos_work); 1561 schedule_work(&up->qos_work);
1566 }
1567 1562
1568 return 0; 1563 return 0;
1569} 1564}