diff options
-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 156b5aaed95b..b6d172873076 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c | |||
@@ -198,7 +198,7 @@ static int serial_omap_get_context_loss_count(struct uart_omap_port *up) | |||
198 | struct omap_uart_port_info *pdata = up->dev->platform_data; | 198 | struct omap_uart_port_info *pdata = up->dev->platform_data; |
199 | 199 | ||
200 | if (!pdata || !pdata->get_context_loss_count) | 200 | if (!pdata || !pdata->get_context_loss_count) |
201 | return 0; | 201 | return -EINVAL; |
202 | 202 | ||
203 | return pdata->get_context_loss_count(up->dev); | 203 | return pdata->get_context_loss_count(up->dev); |
204 | } | 204 | } |
@@ -1502,6 +1502,9 @@ static int serial_omap_probe(struct platform_device *pdev) | |||
1502 | 1502 | ||
1503 | platform_set_drvdata(pdev, up); | 1503 | platform_set_drvdata(pdev, up); |
1504 | pm_runtime_enable(&pdev->dev); | 1504 | pm_runtime_enable(&pdev->dev); |
1505 | if (omap_up_info->autosuspend_timeout == 0) | ||
1506 | omap_up_info->autosuspend_timeout = -1; | ||
1507 | device_init_wakeup(up->dev, true); | ||
1505 | pm_runtime_use_autosuspend(&pdev->dev); | 1508 | pm_runtime_use_autosuspend(&pdev->dev); |
1506 | pm_runtime_set_autosuspend_delay(&pdev->dev, | 1509 | pm_runtime_set_autosuspend_delay(&pdev->dev, |
1507 | omap_up_info->autosuspend_timeout); | 1510 | omap_up_info->autosuspend_timeout); |
@@ -1611,7 +1614,6 @@ static void serial_omap_restore_context(struct uart_omap_port *up) | |||
1611 | static int serial_omap_runtime_suspend(struct device *dev) | 1614 | static int serial_omap_runtime_suspend(struct device *dev) |
1612 | { | 1615 | { |
1613 | struct uart_omap_port *up = dev_get_drvdata(dev); | 1616 | struct uart_omap_port *up = dev_get_drvdata(dev); |
1614 | struct omap_uart_port_info *pdata = dev->platform_data; | ||
1615 | 1617 | ||
1616 | if (!up) | 1618 | if (!up) |
1617 | return -EINVAL; | 1619 | return -EINVAL; |
@@ -1626,9 +1628,6 @@ static int serial_omap_runtime_suspend(struct device *dev) | |||
1626 | uart_console(&up->port)) | 1628 | uart_console(&up->port)) |
1627 | return -EBUSY; | 1629 | return -EBUSY; |
1628 | 1630 | ||
1629 | if (!pdata) | ||
1630 | return 0; | ||
1631 | |||
1632 | up->context_loss_cnt = serial_omap_get_context_loss_count(up); | 1631 | up->context_loss_cnt = serial_omap_get_context_loss_count(up); |
1633 | 1632 | ||
1634 | if (device_may_wakeup(dev)) { | 1633 | if (device_may_wakeup(dev)) { |
@@ -1656,7 +1655,7 @@ static int serial_omap_runtime_resume(struct device *dev) | |||
1656 | int loss_cnt = serial_omap_get_context_loss_count(up); | 1655 | int loss_cnt = serial_omap_get_context_loss_count(up); |
1657 | 1656 | ||
1658 | if (loss_cnt < 0) { | 1657 | if (loss_cnt < 0) { |
1659 | dev_err(dev, "serial_omap_get_context_loss_count failed : %d\n", | 1658 | dev_dbg(dev, "serial_omap_get_context_loss_count failed : %d\n", |
1660 | loss_cnt); | 1659 | loss_cnt); |
1661 | serial_omap_restore_context(up); | 1660 | serial_omap_restore_context(up); |
1662 | } else if (up->context_loss_cnt != loss_cnt) { | 1661 | } else if (up->context_loss_cnt != loss_cnt) { |