From: Dong Aisheng <aisheng.dong@nxp.com> To: linux-clk@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, sboyd@kernel.org, mturquette@baylibre.com, shawnguo@kernel.org, fabio.estevam@nxp.com, linux-imx@nxp.com, kernel@pengutronix.de, Dong Aisheng <aisheng.dong@nxp.com> Subject: [PATCH V4 10/11] clk: imx: clk-imx8qxp-lpcg: add runtime pm support Date: Tue, 20 Aug 2019 07:13:24 -0400 Message-ID: <1566299605-15641-11-git-send-email-aisheng.dong@nxp.com> (raw) In-Reply-To: <1566299605-15641-1-git-send-email-aisheng.dong@nxp.com> add runtime pm support Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> --- ChangeLog: v3->v4: * disable rpm when error out v3: new patch --- drivers/clk/imx/clk-imx8qxp-lpcg.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/drivers/clk/imx/clk-imx8qxp-lpcg.c b/drivers/clk/imx/clk-imx8qxp-lpcg.c index 90326e5..ca9bd58 100644 --- a/drivers/clk/imx/clk-imx8qxp-lpcg.c +++ b/drivers/clk/imx/clk-imx8qxp-lpcg.c @@ -12,6 +12,7 @@ #include <linux/of_address.h> #include <linux/of_device.h> #include <linux/platform_device.h> +#include <linux/pm_runtime.h> #include <linux/slab.h> #include "clk-scu.h" @@ -231,26 +232,45 @@ static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev, return -EINVAL; } + pm_runtime_get_noresume(&pdev->dev); + pm_runtime_set_active(&pdev->dev); + pm_runtime_set_autosuspend_delay(&pdev->dev, 500); + pm_runtime_use_autosuspend(&pdev->dev); + pm_runtime_enable(&pdev->dev); + for (i = 0; i < count; i++) { idx = bit_offset[i] / 4; if (idx > IMX_LPCG_MAX_CLKS) { dev_warn(&pdev->dev, "invalid bit offset of clock %d\n", i); - return -EINVAL; + ret = -EINVAL; + goto out; } - clk_hws[idx] = imx_clk_lpcg_scu(output_names[i], - parent_names[i], 0, base, - bit_offset[i], false); + clk_hws[idx] = imx_clk_lpcg_scu_dev(&pdev->dev, output_names[i], + parent_names[i], 0, base, + bit_offset[i], false); if (IS_ERR(clk_hws[idx])) { dev_warn(&pdev->dev, "failed to register clock %d\n", idx); - return -EINVAL; + ret = -EINVAL; + goto out; } } - return devm_of_clk_add_hw_provider(&pdev->dev, imx_lpcg_of_clk_src_get, - clk_data); + ret = devm_of_clk_add_hw_provider(&pdev->dev, imx_lpcg_of_clk_src_get, + clk_data); + if (ret) + goto out; + + pm_runtime_mark_last_busy(&pdev->dev); + pm_runtime_put_autosuspend(&pdev->dev); + + return 0; + +out: + pm_runtime_disable(&pdev->dev); + return ret; } static int imx8qxp_lpcg_clk_probe(struct platform_device *pdev) -- 2.7.4
next prev parent reply index Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-20 11:13 [PATCH V4 00/11] clk: imx8: add new clock binding for better " Dong Aisheng 2019-08-20 11:13 ` [PATCH V4 01/11] dt-bindings: firmware: imx-scu: new binding to parse clocks from device tree Dong Aisheng 2019-08-24 19:19 ` Shawn Guo 2019-08-26 3:24 ` Aisheng Dong 2019-08-27 17:04 ` Rob Herring 2019-09-06 16:56 ` Stephen Boyd 2019-08-20 11:13 ` [PATCH V4 02/11] dt-bindings: clock: imx-lpcg: add support " Dong Aisheng 2019-08-24 19:21 ` Shawn Guo 2019-08-26 3:14 ` Aisheng Dong 2019-08-26 3:21 ` Aisheng Dong 2019-08-27 17:05 ` Rob Herring 2019-09-06 17:00 ` Stephen Boyd 2019-08-20 11:13 ` [PATCH V4 03/11] clk: imx: scu: add two cells binding support Dong Aisheng 2019-09-06 17:06 ` Stephen Boyd 2019-09-09 10:23 ` Dong Aisheng 2019-09-16 18:44 ` Stephen Boyd 2019-11-17 12:07 ` Dong Aisheng 2019-08-20 11:13 ` [PATCH V4 04/11] clk: imx: scu: bypass cpu power domains Dong Aisheng 2019-09-06 17:07 ` Stephen Boyd 2019-09-09 10:24 ` Dong Aisheng 2019-08-20 11:13 ` [PATCH V4 05/11] clk: imx: scu: allow scu clk to take device pointer Dong Aisheng 2019-08-20 11:13 ` [PATCH V4 06/11] clk: imx: scu: add runtime pm support Dong Aisheng 2019-08-20 11:13 ` [PATCH V4 07/11] clk: imx: scu: add suspend/resume support Dong Aisheng 2019-09-06 17:09 ` Stephen Boyd 2019-09-09 10:35 ` Dong Aisheng 2019-08-20 11:13 ` [PATCH V4 08/11] clk: imx: imx8qxp-lpcg: add parsing clocks from device tree Dong Aisheng 2019-09-06 17:13 ` Stephen Boyd 2019-09-09 11:23 ` Dong Aisheng 2019-09-16 18:45 ` Stephen Boyd 2019-11-17 12:08 ` Dong Aisheng 2019-08-20 11:13 ` [PATCH V4 09/11] clk: imx: lpcg: allow lpcg clk to take device pointer Dong Aisheng 2019-08-20 11:13 ` Dong Aisheng [this message] 2019-08-20 11:13 ` [PATCH V4 11/11] clk: imx: lpcg: add suspend/resume support Dong Aisheng 2019-09-06 17:14 ` Stephen Boyd 2019-09-09 11:39 ` Dong Aisheng 2019-09-09 12:21 ` [PATCH V4 00/11] clk: imx8: add new clock binding for better pm support Oliver Graute
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=1566299605-15641-11-git-send-email-aisheng.dong@nxp.com \ --to=aisheng.dong@nxp.com \ --cc=fabio.estevam@nxp.com \ --cc=kernel@pengutronix.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-imx@nxp.com \ --cc=mturquette@baylibre.com \ --cc=sboyd@kernel.org \ --cc=shawnguo@kernel.org \ /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
Linux-Clk Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-clk/0 linux-clk/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-clk linux-clk/ https://lore.kernel.org/linux-clk \ linux-clk@vger.kernel.org public-inbox-index linux-clk Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-clk AGPL code for this site: git clone https://public-inbox.org/public-inbox.git