[PATCH v2] drm/exynos: modify condition in mixer and hdmi resume
Rahul Sharma
rahul.sharma at samsung.com
Fri Feb 22 05:46:45 PST 2013
From: Prathyush K <prathyush.k at samsung.com>
If mixer is runtime suspended (by DPMS OFF), mixer_suspend
does not call mixer_poweroff and just returns. Similarily the
mixer_resume should not resume the mixer if mixer is
runtime_suspended. It should be done through DPMS ON.
The existing check is stopping the resume. This issue is fixed
by reversing the condiftion. It also holds good for hdmi driver.
v2: updated the error messages.
Signed-off-by: Prathyush K <prathyush.k at samsung.com>
Signed-off-by: Rahul Sharma <rahul.sharma at samsung.com>
---
It is based on exynos-drm-next-todo branch at
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git
drivers/gpu/drm/exynos/exynos_hdmi.c | 9 ++++++---
drivers/gpu/drm/exynos/exynos_mixer.c | 9 ++++++---
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 9e3c2ad..67030b1 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -2365,7 +2365,8 @@ static int hdmi_suspend(struct device *dev)
drm_helper_hpd_irq_event(ctx->drm_dev);
if (pm_runtime_suspended(dev)) {
- DRM_DEBUG_KMS("%s : Already suspended\n", __func__);
+ DRM_DEBUG_KMS("%s: already runtime-suspended.\n",
+ __func__);
return 0;
}
@@ -2386,8 +2387,10 @@ static int hdmi_resume(struct device *dev)
enable_irq(hdata->external_irq);
enable_irq(hdata->internal_irq);
- if (!pm_runtime_suspended(dev)) {
- DRM_DEBUG_KMS("%s : Already resumed\n", __func__);
+ if (pm_runtime_suspended(dev)) {
+ /* dpms callback should resume the hdmi. */
+ DRM_DEBUG_KMS("%s: already runtime-suspended.\n",
+ __func__);
return 0;
}
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
index 5139a43..3c12518 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1249,7 +1249,8 @@ static int mixer_suspend(struct device *dev)
DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
if (pm_runtime_suspended(dev)) {
- DRM_DEBUG_KMS("%s : Already suspended\n", __func__);
+ DRM_DEBUG_KMS("%s: already runtime-suspended.\n",
+ __func__);
return 0;
}
@@ -1265,8 +1266,10 @@ static int mixer_resume(struct device *dev)
DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
- if (!pm_runtime_suspended(dev)) {
- DRM_DEBUG_KMS("%s : Already resumed\n", __func__);
+ if (pm_runtime_suspended(dev)) {
+ /* dpms callback should resume the mixer. */
+ DRM_DEBUG_KMS("%s: already runtime-suspended.\n",
+ __func__);
return 0;
}
--
1.8.0
More information about the dri-devel
mailing list