linux-samsung-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marek Szyprowski <m.szyprowski@samsung.com>
To: alsa-devel@alsa-project.org, linux-samsung-soc@vger.kernel.org
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Mark Brown <broonie@kernel.org>,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Sangbeom Kim <sbkim73@samsung.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Inki Dae <inki.dae@samsung.com>,
	Javier Martinez Canillas <javier@osg.samsung.com>
Subject: [PATCH 4/5] ASoC: samsung: i2s: Let runtime PM operations to control op_clk too
Date: Thu, 29 Dec 2016 12:34:06 +0100	[thread overview]
Message-ID: <1483011247-21613-5-git-send-email-m.szyprowski@samsung.com> (raw)
In-Reply-To: <1483011247-21613-1-git-send-email-m.szyprowski@samsung.com>

This patch adds handling of parent operational clock to runtime PM
callbacks. This way it is ensured that when I2S module is in runtime
suspended state, all its parent clocks are disabled and unprepared.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
 sound/soc/samsung/i2s.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index 47a5650aaa66..07728b93f56e 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -546,6 +546,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai,
 
 			if (WARN_ON(IS_ERR(i2s->op_clk))) {
 				ret = PTR_ERR(i2s->op_clk);
+				i2s->op_clk = NULL;
 				goto err;
 			}
 
@@ -1121,6 +1122,8 @@ static int i2s_runtime_suspend(struct device *dev)
 	i2s->suspend_i2scon = readl(i2s->addr + I2SCON);
 	i2s->suspend_i2spsr = readl(i2s->addr + I2SPSR);
 
+	if (i2s->op_clk)
+		clk_disable_unprepare(i2s->op_clk);
 	clk_disable_unprepare(i2s->clk);
 
 	return 0;
@@ -1131,6 +1134,8 @@ static int i2s_runtime_resume(struct device *dev)
 	struct i2s_dai *i2s = dev_get_drvdata(dev);
 
 	clk_prepare_enable(i2s->clk);
+	if (i2s->op_clk)
+		clk_prepare_enable(i2s->op_clk);
 
 	writel(i2s->suspend_i2scon, i2s->addr + I2SCON);
 	writel(i2s->suspend_i2smod, i2s->addr + I2SMOD);
-- 
1.9.1

  parent reply	other threads:[~2016-12-29 11:34 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20161229113425eucas1p2f95b915a9a66df3e3ff8431b5625b926@eucas1p2.samsung.com>
2016-12-29 11:34 ` [PATCH 0/5] Runtime PM support for Exynos I2S driver Marek Szyprowski
     [not found]   ` <CGME20161229113425eucas1p2600ba7e4337e90f65c0bc60bb4a9c2ec@eucas1p2.samsung.com>
2016-12-29 11:34     ` [PATCH 1/5] ASoC: samsung: i2s: Remove virtual device for secondary DAI Marek Szyprowski
2016-12-31 18:31       ` Mark Brown
2016-12-31 19:19       ` Applied "ASoC: samsung: i2s: Remove virtual device for secondary DAI" to the asoc tree Mark Brown
     [not found]   ` <CGME20161229113426eucas1p2bc05fb68efd45e6af3ae7a2b8be5e481@eucas1p2.samsung.com>
2016-12-29 11:34     ` [PATCH 2/5] ASoC: samsung: i2s: Ensure proper runtime PM state of I2S device Marek Szyprowski
2016-12-31 19:19       ` Applied "ASoC: samsung: i2s: Ensure proper runtime PM state of I2S device" to the asoc tree Mark Brown
     [not found]   ` <CGME20161229113427eucas1p166db5239bd7b17ebaba8b248f06cffe8@eucas1p1.samsung.com>
2016-12-29 11:34     ` [PATCH 3/5] ASoC: samsung: i2s: Move saving and restoring regs to runtime pm operations Marek Szyprowski
2016-12-31 19:19       ` Applied "ASoC: samsung: i2s: Move saving and restoring regs to runtime pm operations" to the asoc tree Mark Brown
     [not found]   ` <CGME20161229113427eucas1p20e91adee0da640e2a5847d53f3c6e443@eucas1p2.samsung.com>
2016-12-29 11:34     ` Marek Szyprowski [this message]
2016-12-31 19:19       ` Applied "ASoC: samsung: i2s: Let runtime PM operations to control op_clk too" " Mark Brown
     [not found]   ` <CGME20161229113427eucas1p21ee586b73029410d0860a22ce4a21e0c@eucas1p2.samsung.com>
2016-12-29 11:34     ` [PATCH 5/5] ASoC: samsung: i2s: Provide I2S device for registered clocks Marek Szyprowski
2016-12-31 19:19       ` Applied "ASoC: samsung: i2s: Provide I2S device for registered clocks" to the asoc tree Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1483011247-21613-5-git-send-email-m.szyprowski@samsung.com \
    --to=m.szyprowski@samsung.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=broonie@kernel.org \
    --cc=inki.dae@samsung.com \
    --cc=javier@osg.samsung.com \
    --cc=krzk@kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=s.nawrocki@samsung.com \
    --cc=sbkim73@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).