From patchwork Thu Dec 29 11:34:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 89263 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp5945553qgi; Thu, 29 Dec 2016 03:34:36 -0800 (PST) X-Received: by 10.84.216.24 with SMTP id m24mr81067893pli.22.1483011276037; Thu, 29 Dec 2016 03:34:36 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f80si53314107pff.237.2016.12.29.03.34.35; Thu, 29 Dec 2016 03:34:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751315AbcL2Lef (ORCPT + 4 others); Thu, 29 Dec 2016 06:34:35 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:53688 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752120AbcL2Lec (ORCPT ); Thu, 29 Dec 2016 06:34:32 -0500 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OIY00CKE2THJE00@mailout4.w1.samsung.com> for linux-samsung-soc@vger.kernel.org; Thu, 29 Dec 2016 11:34:29 +0000 (GMT) Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20161229113428eucas1p2663b02bce2cde7a62b4bbbc89dfa0c0c~UtuQpTmJj0697806978eucas1p2Q; Thu, 29 Dec 2016 11:34:28 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges5.samsung.com (EUCPMTA) with SMTP id 8A.5C.10572.4C4F4685; Thu, 29 Dec 2016 11:34:28 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20161229113427eucas1p20e91adee0da640e2a5847d53f3c6e443~UtuP_nHsT0697806978eucas1p2P; Thu, 29 Dec 2016 11:34:27 +0000 (GMT) X-AuditID: cbfec7f5-f79676d00000294c-9a-5864f4c43fcf Received: from eusync2.samsung.com ( [203.254.199.212]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 79.0F.06573.6B4F4685; Thu, 29 Dec 2016 11:34:14 +0000 (GMT) Received: from AMDC2765.digital.local ([106.116.147.25]) by eusync2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OIY00CMD2T7BA50@eusync2.samsung.com>; Thu, 29 Dec 2016 11:34:27 +0000 (GMT) From: Marek Szyprowski To: alsa-devel@alsa-project.org, linux-samsung-soc@vger.kernel.org Cc: Marek Szyprowski , Mark Brown , Sylwester Nawrocki , Sangbeom Kim , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Inki Dae , Javier Martinez Canillas 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 Message-id: <1483011247-21613-5-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1483011247-21613-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrOIsWRmVeSWpSXmKPExsWy7djPc7pHvqREGNxZxG5x5eIhJouNM9az Wkx9+ITNYtL9CSwWb96uYbI4f34Du8WM8/uYLNYeuctucfhNO6vFxRVfmBy4PDZ8bmLz2LSq k81jS/9ddo++LasYPT5vkgtgjeKySUnNySxLLdK3S+DKWHq1m7lgH1fFvXd/GBsYL3J0MXJw SAiYSEyZ49/FyAlkiklcuLeerYuRi0NIYCmjRPPG6awQzmdGicUH5rFAVJlI/Fv+gxkisYxR 4sbnU1AtDUwSM38/ZwKpYhMwlOh628UGYosIOEnMnPMerIhZ4BaTRHfTBbBRwgJREo/fbwcr YhFQldi4+hQ7yE28Ah4S7y5YQWyTkzh5bDIriM0p4CnR8rGJCWSOhEA7u8S7t6+ZIH6Qldh0 gBmi3kWi9VEzlC0s8er4FnYIW0bi8uRuqA/6GSWaWrUh7BmMEufe8kLY1hKHj18E28UswCcx adt0ZojxvBIdbUIQJR4SR3b+gxrjKPF2YgsLxO9zGCUaDi9mm8Aos4CRYRWjSGppcW56arGp XnFibnFpXrpecn7uJkZgdJ/+d/zrDsalx6wOMQpwMCrx8ErIpEQIsSaWFVfmHmKU4GBWEuH9 8gkoxJuSWFmVWpQfX1Sak1p8iFGag0VJnHfPgivhQgLpiSWp2ampBalFMFkmDk6pBkY92Xkn ln42P2D8eiWjRcalZ7t1oh53nTlZd6ROZTPb1qYGBbawBAeVnE/PmfS0l/AUiLKb93LwcVut WHaI+9uFp/ZHpy1Zyf2092yWVoK7EUcM88YFQU8PdTP5HPl5Zvd5l0vTnI9E+xub6pxPuCQz bV5LdnFFo6yv9UIH7fJFB2avvSu1t0uJpTgj0VCLuag4EQCoMMLk6gIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBLMWRmVeSWpSXmKPExsVy+t/xK7rbvqREGGxutLa4cvEQk8XGGetZ LaY+fMJmMen+BBaLN2/XMFmcP7+B3WLG+X1MFmuP3GW3OPymndXi4oovTA5cHhs+N7F5bFrV yeaxpf8uu0ffllWMHp83yQWwRrnZZKQmpqQWKaTmJeenZOal2yqFhrjpWigp5CXmptoqRej6 hgQpKZQl5pQCeUYGaMDBOcA9WEnfLsEtY+nVbuaCfVwV9979YWxgvMjRxcjJISFgIvFv+Q9m CFtM4sK99WxdjFwcQgJLGCVe/5rADuE0MUk0PZ4GVsUmYCjR9baLDcQWEXCSmDnnPVgHs8Ad JonvjxaxgCSEBaIkXv44zQRiswioSmxcfQpoEgcHr4CHxLsLVhDb5CROHpvMCmJzCnhKtHxs AisXAir58+of0wRG3gWMDKsYRVJLi3PTc4uN9IoTc4tL89L1kvNzNzECQ33bsZ9bdjB2vQs+ xCjAwajEw1sglxIhxJpYVlyZe4hRgoNZSYT3yyegEG9KYmVValF+fFFpTmrxIUZToJsmMkuJ JucD4zCvJN7QxNDc0tDI2MLC3MhISZx36ocr4UIC6YklqdmpqQWpRTB9TBycUg2M62vz79yS ZtX0Vb12NoWfe3Lb9T3PTObFcez5Edh2q+ADc1bf9iN7F6l4ZR/u5Zy533dG4UKhZXKTOH22 Wk98Ib/mb/iimO+zE+cat296IKxi9sn8rvdn7395a8rWHeA97LvROKyT7ceugkmxAQtVT3yW LXCe1uOSyOL3skBapnaX5bUMzc0KSizFGYmGWsxFxYkAfl43a4sCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161229113427eucas1p20e91adee0da640e2a5847d53f3c6e443 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRs=?= =?UTF-8?B?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20161229113427eucas1p20e91adee0da640e2a5847d53f3c6e443 X-RootMTR: 20161229113427eucas1p20e91adee0da640e2a5847d53f3c6e443 References: <1483011247-21613-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org 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 --- sound/soc/samsung/i2s.c | 5 +++++ 1 file changed, 5 insertions(+) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html 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);