From: Hien Dang <hien.dang...@renesas.com>

Since commit '39dd0f234fc37d ("PM / Domains: Allow runtime PM during system
PM phases")', runtime PM may be in suspended state when the module
registers are backed up. It is therefore necessary to ensure the device is
on during suspend by using pm_runtime_get_sync()/pm_runtime_put().

Signed-off-by: Hien Dang <hien.dang...@renesas.com>
Signed-off-by: Hiromitsu Yamasaki <hiromitsu.yamasaki...@renesas.com>
[uli: edited description for clarity]
Signed-off-by: Ulrich Hecht <ulrich.hecht+rene...@gmail.com>
---
 drivers/tty/serial/sh-sci.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index fdbbff5..22d7a78 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -3246,8 +3246,11 @@ static __maybe_unused int sci_suspend(struct device *dev)
 {
        struct sci_port *sport = dev_get_drvdata(dev);
 
-       if (sport)
+       if (sport) {
+               pm_runtime_get_sync(sport->port.dev);
                uart_suspend_port(&sci_uart_driver, &sport->port);
+               pm_runtime_put(sport->port.dev);
+       }
 
        return 0;
 }
-- 
2.7.4

Reply via email to