Skip to content

Commit

Permalink
tty: serial: msm_serial: Add support for suspend/resume
Browse files Browse the repository at this point in the history
Without this, tx stops working after resume. By adding
these calls, everything seems to work fine.

Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Pascal Huerst authored and Greg Kroah-Hartman committed Apr 22, 2018
1 parent a406c4b commit 7a91e38
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions drivers/tty/serial/msm_serial.c
Original file line number Diff line number Diff line change
@@ -1812,11 +1812,36 @@ static const struct of_device_id msm_match_table[] = {
};
MODULE_DEVICE_TABLE(of, msm_match_table);

#ifdef CONFIG_PM_SLEEP
static int msm_serial_suspend(struct device *dev)
{
struct msm_port *port = dev_get_drvdata(dev);

uart_suspend_port(&msm_uart_driver, &port->uart);

return 0;
}

static int msm_serial_resume(struct device *dev)
{
struct msm_port *port = dev_get_drvdata(dev);

uart_resume_port(&msm_uart_driver, &port->uart);

return 0;
}
#endif /* CONFIG_PM_SLEEP */

static const struct dev_pm_ops msm_serial_dev_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(msm_serial_suspend, msm_serial_resume)
};

static struct platform_driver msm_platform_driver = {
.remove = msm_serial_remove,
.probe = msm_serial_probe,
.driver = {
.name = "msm_serial",
.pm = &msm_serial_dev_pm_ops,
.of_match_table = msm_match_table,
},
};

0 comments on commit 7a91e38

Please sign in to comment.