From patchwork Wed Aug 9 10:35:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 109703 Delivered-To: patch@linaro.org Received: by 10.140.95.78 with SMTP id h72csp675804qge; Wed, 9 Aug 2017 03:35:23 -0700 (PDT) X-Received: by 10.99.109.72 with SMTP id i69mr7046565pgc.226.1502274923775; Wed, 09 Aug 2017 03:35:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502274923; cv=none; d=google.com; s=arc-20160816; b=Su+GGjOnFvCAilh7NCFM2d9kXgWOCGWTj6pHNcPac96A5qG38zJdmdnKgNzd2xtSSK ZQO/1YdG6z/id3jU8ifJs1yP2LFOPXnPQYLM6bnAaX3HUKwB3YuF8Ii9D/n1RCi0ECNo O7C0nclA+Zn7KxezAaBqAwrOgbKqCPmn4ahh0btHaMMPCcWq94Q4pdYMNTwGcL/ShBMp Xe3d0+tYKXHZTbe/2X9xAEHepDo/5qCoW02HridJPgW5coc1d30OpiTeTjCN/GVl4mdV 9HKLMi5X7Ezf2OAxnfmR1GsFMmWVVhmC9Oxevjxi0ywKH489VK1kysNzR7FtT3JiyzWz dhBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=ci6yVz4R+LvedGHjiSGZ6I2P6B37oaEGtzq/QlYHwoU=; b=MNR8zAFUwMl5mPHJXl1fYNnGbc2Nkf+JW3IBFTwtYg8/dzvFXQqLXYS90ztCjcLm+T U4rK2/FbzpAKQd59tqiyXTVmCrpUQUIdKJ15S/wU/++yBIujBcSQxmtsMvG5sAyTzUna tZoR8sdvbARc/Z+4SGYoI5rgCWh58ALkKqVM3yatZzHUlIr9njN0izjuZNkcbLTxXDpe wDS5Yg7ladHfqaT5FzlgMGpmzokqUv/YKQHm8UuTbJlN6j6YcxmtRsOML/RcXUJSOaCd 6Ernfvr4cFPIg296qYZ9urJz4mDBcDH5QtyFAN/O425H8k5RKRPs2w68iSDem1h60MJ4 QCGg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s16si2577877plk.305.2017.08.09.03.35.23; Wed, 09 Aug 2017 03:35:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-pm-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-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752121AbdHIKfV (ORCPT + 12 others); Wed, 9 Aug 2017 06:35:21 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:48739 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752047AbdHIKfR (ORCPT ); Wed, 9 Aug 2017 06:35:17 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20170809103515euoutp023ba34d20e4b56326c6e5f003edfd0766~ZJxNqhffe1734317343euoutp02e; Wed, 9 Aug 2017 10:35:15 +0000 (GMT) Received: from eusmges3.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170809103514eucas1p255a391d96947dcbec65adcb2133d1553~ZJxM5tucp2191321913eucas1p2L; Wed, 9 Aug 2017 10:35:14 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3.samsung.com (EUCPMTA) with SMTP id EC.66.12867.165EA895; Wed, 9 Aug 2017 11:35:13 +0100 (BST) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170809103513eucas1p25e142aac911838847e70a036c5d93131~ZJxMOTeQk2450724507eucas1p28; Wed, 9 Aug 2017 10:35:13 +0000 (GMT) X-AuditID: cbfec7f2-f793b6d000003243-3f-598ae5613c36 Received: from eusync2.samsung.com ( [203.254.199.212]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id BD.75.20118.165EA895; Wed, 9 Aug 2017 11:35:13 +0100 (BST) 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 <0OUE00IH6YQKHB00@eusync2.samsung.com>; Wed, 09 Aug 2017 11:35:13 +0100 (BST) From: Marek Szyprowski To: linux-clk@vger.kernel.org, linux-pm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Marek Szyprowski , Stephen Boyd , Michael Turquette , Ulf Hansson , Sylwester Nawrocki , Chanwoo Choi , Inki Dae , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz Subject: [PATCH v8 2/5] clk: samsung: Add support for runtime PM Date: Wed, 09 Aug 2017 12:35:04 +0200 Message-id: <1502274907-11931-3-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1502274907-11931-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNIsWRmVeSWpSXmKPExsWy7djP87qJT7siDT7/srLYOGM9q8X1L89Z LSbdn8Bicf78BnaLTY+vsVp87LnHavG59wijxYzz+5gs1h65y25x8ZSrxeE37awWP850s1gc XxvuwOvx/kYru8flvl4mj02rOtk87lzbw+axeUm9R9+WVYwenzfJBbBHcdmkpOZklqUW6dsl cGUc3TeLpWC1YsWrr2oNjN+kuxg5OCQETCTufXPpYuQEMsUkLtxbz9bFyMUhJLCUUWLHkdWs EM5nRolPOz8yQVSZSCza9pgdxBYSWMYocXppAkRRA5PEvP0XwBJsAoYSXW+7wEaJCDQxSkzc sB5sFLNAE7PEtH0TwUYJCzhIzP15ig3EZhFQlZi8fDYziM0r4CHx/EcrI8Q6OYmTxyazgtic Ap4S6+fcYoaIr2KX+La4FuIHWYlNB6DCLhIXp56FahWWeHV8CzuELSNxeXI3C4TdzyjR1KoN Yc9glDj3lhfCtpY4fPwi2CpmAT6JSdumM0OM55XoaBOCKPGQ+HpzLhtE2FGieWIdxO9zGCUu rX7BOIFRZgEjwypGkdTS4tz01GJjveLE3OLSvHS95PzcTYzAJHD63/FPOxi/nrA6xCjAwajE w9u4qzNSiDWxrLgy9xCjBAezkgjv88ddkUK8KYmVValF+fFFpTmpxYcYpTlYlMR5baPaIoUE 0hNLUrNTUwtSi2CyTBycUg2MYccT8oRWPY70LLz4dsYuhduPt/+ueNikvjpNr+dlU82yVcs2 J24o/H1WY6fzlqAjmeF9O+7qzHpaf91PX8AzLXFLw9UfF/lnvOCZnXlL1dNz2atK5R/FJUrK Kvu/vT+iJrhX8JpI7cEGl/j6y+oNctkV34N8Wi0//Pxc1bTp4dLW3KCdBQtPK7EUZyQaajEX FScCAGZ3xtv+AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeLIzCtJLcpLzFFi42I5/e/4Fd3Ep12RBhcmy1psnLGe1eL6l+es FpPuT2CxOH9+A7vFpsfXWC0+9txjtfjce4TRYsb5fUwWa4/cZbe4eMrV4vCbdlaLH2e6WSyO rw134PV4f6OV3eNyXy+Tx6ZVnWwed67tYfPYvKTeo2/LKkaPz5vkAtij3GwyUhNTUosUUvOS 81My89JtlUJD3HQtlBTyEnNTbZUidH1DgpQUyhJzSoE8IwM04OAc4B6spG+X4JZxdN8sloLV ihWvvqo1MH6T7mLk5JAQMJFYtO0xO4QtJnHh3no2EFtIYAmjxI/3Nl2MXEB2E5PEmv93WUAS bAKGEl1vu9hAEiICTYwST/qmsYM4zAJtzBL/O74yglQJCzhIzP15CmwUi4CqxOTls5lBbF4B D4nnP1oZIdbJSZw8NpkVxOYU8JRYP+cWM8RqD4l7xzaxTGDkXcDIsIpRJLW0ODc9t9hIrzgx t7g0L10vOT93EyMwLrYd+7llB2PXu+BDjAIcjEo8vDf2dEYKsSaWFVfmHmKU4GBWEuEVA0aV EG9KYmVValF+fFFpTmrxIUZToKMmMkuJJucDYzavJN7QxNDc0tDI2MLC3MhISZxX/XJTpJBA emJJanZqakFqEUwfEwenVAMjwytdkd0bDn+J0F3Sef4ra3DwnJ5uQaa0dx1bjj7RPyX+x+lN /K/6pc+eb5X0O9Kvbjf7n4Pv43iFv5Otv3Ww96u98Lv/pj1k/V6e+FMtrqfibD8XMcUua/L0 V/xbIGX1/NOeSbLXfN7dqimx+/ydR/J+s4ptSYos8w4H64Xn976c2HSu/vEPJZbijERDLeai 4kQApOP6SqECAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170809103513eucas1p25e142aac911838847e70a036c5d93131 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1B?= =?utf-8?b?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?utf-8?q?Marek_Szyprowski=1BSRPOL-Kernel_=28TP=29=1BSam?= =?utf-8?q?sung_Electronics=1BSenior_Software_Engineer?= X-Sender-Code: =?utf-8?q?C10=1BEHQ=1BC10CD02CD027392?= CMS-TYPE: 201P X-CMS-RootMailID: 20170809103513eucas1p25e142aac911838847e70a036c5d93131 X-RootMTR: 20170809103513eucas1p25e142aac911838847e70a036c5d93131 References: <1502274907-11931-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org This patch adds struct device pointer to samsung_clk_provider and forwarding it to clk_register_* functions, so drivers can register clocks, which use runtime pm feature. Signed-off-by: Marek Szyprowski Reviewed-by: Ulf Hansson Reviewed-by: Chanwoo Choi Tested-by: Chanwoo Choi Reviewed-by: Krzysztof Kozlowski --- drivers/clk/samsung/clk-pll.c | 2 +- drivers/clk/samsung/clk.c | 12 ++++++------ drivers/clk/samsung/clk.h | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) -- 1.9.1 diff --git a/drivers/clk/samsung/clk-pll.c b/drivers/clk/samsung/clk-pll.c index 037c61484098..41ebb94d2855 100644 --- a/drivers/clk/samsung/clk-pll.c +++ b/drivers/clk/samsung/clk-pll.c @@ -1388,7 +1388,7 @@ static void __init _samsung_clk_register_pll(struct samsung_clk_provider *ctx, pll->lock_reg = base + pll_clk->lock_offset; pll->con_reg = base + pll_clk->con_offset; - ret = clk_hw_register(NULL, &pll->hw); + ret = clk_hw_register(ctx->dev, &pll->hw); if (ret) { pr_err("%s: failed to register pll clock %s : %d\n", __func__, pll_clk->name, ret); diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c index 7ce0fa86c5ff..aef97b091b50 100644 --- a/drivers/clk/samsung/clk.c +++ b/drivers/clk/samsung/clk.c @@ -134,7 +134,7 @@ void __init samsung_clk_register_fixed_rate(struct samsung_clk_provider *ctx, unsigned int idx, ret; for (idx = 0; idx < nr_clk; idx++, list++) { - clk_hw = clk_hw_register_fixed_rate(NULL, list->name, + clk_hw = clk_hw_register_fixed_rate(ctx->dev, list->name, list->parent_name, list->flags, list->fixed_rate); if (IS_ERR(clk_hw)) { pr_err("%s: failed to register clock %s\n", __func__, @@ -163,7 +163,7 @@ void __init samsung_clk_register_fixed_factor(struct samsung_clk_provider *ctx, unsigned int idx; for (idx = 0; idx < nr_clk; idx++, list++) { - clk_hw = clk_hw_register_fixed_factor(NULL, list->name, + clk_hw = clk_hw_register_fixed_factor(ctx->dev, list->name, list->parent_name, list->flags, list->mult, list->div); if (IS_ERR(clk_hw)) { pr_err("%s: failed to register clock %s\n", __func__, @@ -184,7 +184,7 @@ void __init samsung_clk_register_mux(struct samsung_clk_provider *ctx, unsigned int idx, ret; for (idx = 0; idx < nr_clk; idx++, list++) { - clk_hw = clk_hw_register_mux(NULL, list->name, + clk_hw = clk_hw_register_mux(ctx->dev, list->name, list->parent_names, list->num_parents, list->flags, ctx->reg_base + list->offset, list->shift, list->width, list->mux_flags, &ctx->lock); @@ -217,13 +217,13 @@ void __init samsung_clk_register_div(struct samsung_clk_provider *ctx, for (idx = 0; idx < nr_clk; idx++, list++) { if (list->table) - clk_hw = clk_hw_register_divider_table(NULL, + clk_hw = clk_hw_register_divider_table(ctx->dev, list->name, list->parent_name, list->flags, ctx->reg_base + list->offset, list->shift, list->width, list->div_flags, list->table, &ctx->lock); else - clk_hw = clk_hw_register_divider(NULL, list->name, + clk_hw = clk_hw_register_divider(ctx->dev, list->name, list->parent_name, list->flags, ctx->reg_base + list->offset, list->shift, list->width, list->div_flags, &ctx->lock); @@ -255,7 +255,7 @@ void __init samsung_clk_register_gate(struct samsung_clk_provider *ctx, unsigned int idx, ret; for (idx = 0; idx < nr_clk; idx++, list++) { - clk_hw = clk_hw_register_gate(NULL, list->name, list->parent_name, + clk_hw = clk_hw_register_gate(ctx->dev, list->name, list->parent_name, list->flags, ctx->reg_base + list->offset, list->bit_idx, list->gate_flags, &ctx->lock); if (IS_ERR(clk_hw)) { diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h index b8ca0dd3a38b..f0acae4f5d1b 100644 --- a/drivers/clk/samsung/clk.h +++ b/drivers/clk/samsung/clk.h @@ -24,6 +24,7 @@ */ struct samsung_clk_provider { void __iomem *reg_base; + struct device *dev; spinlock_t lock; /* clk_data must be the last entry due to variable lenght 'hws' array */ struct clk_hw_onecell_data clk_data;