提交 0eaf9f52 编写于 作者: T Tomi Valkeinen

OMAPDSS: use sync versions of pm_runtime_put

omapdss doesn't work properly on system suspend. The problem seems to be
the fact that omapdss uses pm_runtime_put() functions when turning off
the hardware, and when system suspend is in process only sync versions
are allowed.

Using non-sync versions normally and sync versions when suspending would
need rather ugly hacks to convey the information of
suspending/not-suspending to different functions. Optimally the driver
wouldn't even need to care about this, and the PM layer would handle
syncing when suspend is in process.

This patch changes all omapdss's pm_runtime_put calls to
pm_runtime_put_sync. This fixes the suspend problem, and probably the
performance penalty of always using sync versions is negligible.
Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: NKevin Hilman <khilman@ti.com>
上级 f787f32e
...@@ -401,7 +401,7 @@ void dispc_runtime_put(void) ...@@ -401,7 +401,7 @@ void dispc_runtime_put(void)
DSSDBG("dispc_runtime_put\n"); DSSDBG("dispc_runtime_put\n");
r = pm_runtime_put(&dispc.pdev->dev); r = pm_runtime_put_sync(&dispc.pdev->dev);
WARN_ON(r < 0); WARN_ON(r < 0);
} }
......
...@@ -1079,7 +1079,7 @@ void dsi_runtime_put(struct platform_device *dsidev) ...@@ -1079,7 +1079,7 @@ void dsi_runtime_put(struct platform_device *dsidev)
DSSDBG("dsi_runtime_put\n"); DSSDBG("dsi_runtime_put\n");
r = pm_runtime_put(&dsi->pdev->dev); r = pm_runtime_put_sync(&dsi->pdev->dev);
WARN_ON(r < 0); WARN_ON(r < 0);
} }
......
...@@ -720,7 +720,7 @@ void dss_runtime_put(void) ...@@ -720,7 +720,7 @@ void dss_runtime_put(void)
DSSDBG("dss_runtime_put\n"); DSSDBG("dss_runtime_put\n");
r = pm_runtime_put(&dss.pdev->dev); r = pm_runtime_put_sync(&dss.pdev->dev);
WARN_ON(r < 0); WARN_ON(r < 0);
} }
......
...@@ -176,7 +176,7 @@ static void hdmi_runtime_put(void) ...@@ -176,7 +176,7 @@ static void hdmi_runtime_put(void)
DSSDBG("hdmi_runtime_put\n"); DSSDBG("hdmi_runtime_put\n");
r = pm_runtime_put(&hdmi.pdev->dev); r = pm_runtime_put_sync(&hdmi.pdev->dev);
WARN_ON(r < 0); WARN_ON(r < 0);
} }
......
...@@ -140,7 +140,7 @@ static void rfbi_runtime_put(void) ...@@ -140,7 +140,7 @@ static void rfbi_runtime_put(void)
DSSDBG("rfbi_runtime_put\n"); DSSDBG("rfbi_runtime_put\n");
r = pm_runtime_put(&rfbi.pdev->dev); r = pm_runtime_put_sync(&rfbi.pdev->dev);
WARN_ON(r < 0); WARN_ON(r < 0);
} }
......
...@@ -401,7 +401,7 @@ static void venc_runtime_put(void) ...@@ -401,7 +401,7 @@ static void venc_runtime_put(void)
DSSDBG("venc_runtime_put\n"); DSSDBG("venc_runtime_put\n");
r = pm_runtime_put(&venc.pdev->dev); r = pm_runtime_put_sync(&venc.pdev->dev);
WARN_ON(r < 0); WARN_ON(r < 0);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册