[media] exynos-gsc: fix s2r functionality

Message ID 1375879984-19052-1-git-send-email-arun.kk@samsung.com (mailing list archive)
State Accepted, archived
Delegated to: Sylwester Nawrocki
Headers

Commit Message

Arun Kumar K Aug. 7, 2013, 12:53 p.m. UTC
  From: Prathyush K <prathyush.k@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 <prathyush.k@samsung.com>
Signed-off-by: Arun Mankuzhi <arun.m@samsung.com>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
---
 drivers/media/platform/exynos-gsc/gsc-core.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)
  

Comments

Sylwester Nawrocki Aug. 7, 2013, 4:53 p.m. UTC | #1
On 08/07/2013 02:53 PM, Arun Kumar K wrote:
> From: Prathyush K <prathyush.k@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

s/similarily/similarly. I'll fix that typo when applying.

> m2m_resume during resume if already in runtime suspended state. This
> patch adds the necessary conditions to achieve this.
> 
> Signed-off-by: Prathyush K <prathyush.k@samsung.com>
> Signed-off-by: Arun Mankuzhi <arun.m@samsung.com>
> Signed-off-by: Arun Kumar K <arun.kk@samsung.com>

Thanks, that looks good. I'll queue it for 3.12. We actually have
similar patch for the exynos4-is fimc-is-i2c driver.

However this is sort of things that IMO should ideally be handled
in the PM core.
  
Arun Kumar K Aug. 8, 2013, 2:14 a.m. UTC | #2
Hi Sylwester,


On Wed, Aug 7, 2013 at 10:23 PM, Sylwester Nawrocki
<s.nawrocki@samsung.com> wrote:
> On 08/07/2013 02:53 PM, Arun Kumar K wrote:
>> From: Prathyush K <prathyush.k@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
>
> s/similarily/similarly. I'll fix that typo when applying.
>

Thanks.

>> m2m_resume during resume if already in runtime suspended state. This
>> patch adds the necessary conditions to achieve this.
>>
>> Signed-off-by: Prathyush K <prathyush.k@samsung.com>
>> Signed-off-by: Arun Mankuzhi <arun.m@samsung.com>
>> Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
>
> Thanks, that looks good. I'll queue it for 3.12. We actually have
> similar patch for the exynos4-is fimc-is-i2c driver.
>
> However this is sort of things that IMO should ideally be handled
> in the PM core.
>

Yes indeed.

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

Patch

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 = {