From: Prathyush K <prathyus...@samsung.com>

When gsc is in runtime suspended state, there is no need to call
m2m_suspend during suspend and similarily, there is no need to call
m2m_resume during resume if already in runtime suspended state. This
patch adds the necessary conditions to achieve this.

Signed-off-by: Prathyush K <prathyus...@samsung.com>
Signed-off-by: Arun Mankuzhi <aru...@samsung.com>
Signed-off-by: Arun Kumar K <arun...@samsung.com>
---
 drivers/media/platform/exynos-gsc/gsc-core.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c 
b/drivers/media/platform/exynos-gsc/gsc-core.c
index 559fab2..fe69eae 100644
--- a/drivers/media/platform/exynos-gsc/gsc-core.c
+++ b/drivers/media/platform/exynos-gsc/gsc-core.c
@@ -1210,12 +1210,12 @@ static int gsc_resume(struct device *dev)
                spin_unlock_irqrestore(&gsc->slock, flags);
                return 0;
        }
-       gsc_hw_set_sw_reset(gsc);
-       gsc_wait_reset(gsc);
-
        spin_unlock_irqrestore(&gsc->slock, flags);
 
-       return gsc_m2m_resume(gsc);
+       if (!pm_runtime_suspended(dev))
+               return gsc_runtime_resume(dev);
+
+       return 0;
 }
 
 static int gsc_suspend(struct device *dev)
@@ -1227,7 +1227,10 @@ static int gsc_suspend(struct device *dev)
        if (test_and_set_bit(ST_SUSPEND, &gsc->state))
                return 0;
 
-       return gsc_m2m_suspend(gsc);
+       if (!pm_runtime_suspended(dev))
+               return gsc_runtime_suspend(dev);
+
+       return 0;
 }
 
 static const struct dev_pm_ops gsc_pm_ops = {
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to