From: Stephen Boyd <sboyd@kernel.org> To: bjorn.andersson@linaro.org, linux-remoteproc@vger.kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org, andy.gross@linaro.org, david.brown@linaro.org, linux-soc@vger.kernel.org, devicetree@vger.kernel.org, Govind Singh <govinds@codeaurora.org> Subject: Re: [PATCH v4 4/8] clk: qcom: Add WCSS Q6DSP clock controller for QCS404 Date: Tue, 05 Feb 2019 13:53:59 -0800 [thread overview] Message-ID: <154940363974.169292.12160904228403236091@swboyd.mtv.corp.google.com> (raw) In-Reply-To: <20190202152626.1006-5-govinds@codeaurora.org> Quoting Govind Singh (2019-02-02 07:26:22) > drivers/clk/qcom/Kconfig | 8 + > drivers/clk/qcom/Makefile | 1 + > drivers/clk/qcom/common.c | 20 +++ > drivers/clk/qcom/common.h | 3 +- > drivers/clk/qcom/lpasscc-sdm845.c | 23 +-- Please split this into a patch that pulls out the helper and uses it in lpasscc-sdm845 and then this patch that adds wcsscc. > drivers/clk/qcom/wcsscc-qcs404.c | 282 ++++++++++++++++++++++++++++++ > 6 files changed, 315 insertions(+), 22 deletions(-) > create mode 100644 drivers/clk/qcom/wcsscc-qcs404.c > > diff --git a/drivers/clk/qcom/wcsscc-qcs404.c b/drivers/clk/qcom/wcsscc-qcs404.c > new file mode 100644 > index 000000000000..20306b494b2d > --- /dev/null > +++ b/drivers/clk/qcom/wcsscc-qcs404.c > @@ -0,0 +1,282 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright (c) 2018, The Linux Foundation. All rights reserved. > + */ > + > +#include <linux/bitops.h> > +#include <linux/err.h> > +#include <linux/platform_device.h> > +#include <linux/module.h> > +#include <linux/of_address.h> Is this include used? > +#include <linux/regmap.h> > + > +#include <dt-bindings/clock/qcom,wcss-qcs404.h> > + > +#include "clk-regmap.h" > +#include "clk-branch.h" > +#include "common.h" > +#include "reset.h" > + > +/* Q6SSTOP clocks. These clocks are voted > + * by remoteproc client when loaded from > + * user space, system hang is seen when CCF turns > + * off unused clocks. As a temp solution use > + * CLK_IGNORE_UNUSED flags which prevent these > + * clocks from being gated during bootup. This seems similar to the lpass clk discussion that Taniya and I are having. The comment makes it sounds like we're relying on the clks being enabled out of the bootloader again and thus we're not disabling them during late init so that they can be left enabled until some later time. Is that the case here? If so, why isn't the remoteproc turning the clks on that it needs to be on before it boots up the remote processor? > + */ > +static struct clk_branch lcc_ahbfabric_cbc_clk = { > + .halt_reg = 0x1b004, > + .halt_check = BRANCH_VOTED, > + .clkr = { > + .enable_reg = 0x1b004, > + .enable_mask = BIT(0), > + .hw.init = &(struct clk_init_data){ > + .name = "lcc_ahbfabric_cbc_clk", > + .ops = &clk_branch2_ops, > + .flags = CLK_IGNORE_UNUSED, > + }, > + }, > +}; > + [...] > + > +static struct clk_regmap *wcss_q6sstop_qcs404_clocks[] = { > + [WCSS_AHBFABRIC_CBCR_CLK] = &lcc_ahbfabric_cbc_clk.clkr, > + [WCSS_AHBS_CBCR_CLK] = &lcc_q6ss_ahbs_cbc_clk.clkr, > + [WCSS_TCM_CBCR_CLK] = &lcc_q6ss_tcm_slave_cbc_clk.clkr, > + [WCSS_AHBM_CBCR_CLK] = &lcc_q6ss_ahbm_cbc_clk.clkr, > + [WCSS_AXIM_CBCR_CLK] = &lcc_q6ss_axim_cbc_clk.clkr, > + [WCSS_BCR_CBCR_CLK] = &lcc_q6ss_bcr_sleep_clk.clkr, > +}; > + > +static const struct qcom_reset_map qdsp6ss_qcs404_resets[] = { > + [Q6SSTOP_QDSP6SS_RESET] = {0x14, 0}, Nitpick: Add spaces around { and } so it looks like { 0x14, 0 } > + [Q6SSTOP_QDSP6SS_CORE_RESET] = {0x14, 1}, > + [Q6SSTOP_QDSP6SS_BUS_RESET] = {0x14, 2}, > + [Q6SSTOP_CORE_ARCH_RESET] = {0x14, 12}, > +}; > +
WARNING: multiple messages have this Message-ID (diff)
From: Stephen Boyd <sboyd@kernel.org> To: Govind Singh <govinds@codeaurora.org>, bjorn.andersson@linaro.org, linux-remoteproc@vger.kernel.org Cc: linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org, andy.gross@linaro.org, david.brown@linaro.org, linux-soc@vger.kernel.org, devicetree@vger.kernel.org, Govind Singh <govinds@codeaurora.org> Subject: Re: [PATCH v4 4/8] clk: qcom: Add WCSS Q6DSP clock controller for QCS404 Date: Tue, 05 Feb 2019 13:53:59 -0800 [thread overview] Message-ID: <154940363974.169292.12160904228403236091@swboyd.mtv.corp.google.com> (raw) In-Reply-To: <20190202152626.1006-5-govinds@codeaurora.org> Quoting Govind Singh (2019-02-02 07:26:22) > drivers/clk/qcom/Kconfig | 8 + > drivers/clk/qcom/Makefile | 1 + > drivers/clk/qcom/common.c | 20 +++ > drivers/clk/qcom/common.h | 3 +- > drivers/clk/qcom/lpasscc-sdm845.c | 23 +-- Please split this into a patch that pulls out the helper and uses it in lpasscc-sdm845 and then this patch that adds wcsscc. > drivers/clk/qcom/wcsscc-qcs404.c | 282 ++++++++++++++++++++++++++++++ > 6 files changed, 315 insertions(+), 22 deletions(-) > create mode 100644 drivers/clk/qcom/wcsscc-qcs404.c > > diff --git a/drivers/clk/qcom/wcsscc-qcs404.c b/drivers/clk/qcom/wcsscc-qcs404.c > new file mode 100644 > index 000000000000..20306b494b2d > --- /dev/null > +++ b/drivers/clk/qcom/wcsscc-qcs404.c > @@ -0,0 +1,282 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright (c) 2018, The Linux Foundation. All rights reserved. > + */ > + > +#include <linux/bitops.h> > +#include <linux/err.h> > +#include <linux/platform_device.h> > +#include <linux/module.h> > +#include <linux/of_address.h> Is this include used? > +#include <linux/regmap.h> > + > +#include <dt-bindings/clock/qcom,wcss-qcs404.h> > + > +#include "clk-regmap.h" > +#include "clk-branch.h" > +#include "common.h" > +#include "reset.h" > + > +/* Q6SSTOP clocks. These clocks are voted > + * by remoteproc client when loaded from > + * user space, system hang is seen when CCF turns > + * off unused clocks. As a temp solution use > + * CLK_IGNORE_UNUSED flags which prevent these > + * clocks from being gated during bootup. This seems similar to the lpass clk discussion that Taniya and I are having. The comment makes it sounds like we're relying on the clks being enabled out of the bootloader again and thus we're not disabling them during late init so that they can be left enabled until some later time. Is that the case here? If so, why isn't the remoteproc turning the clks on that it needs to be on before it boots up the remote processor? > + */ > +static struct clk_branch lcc_ahbfabric_cbc_clk = { > + .halt_reg = 0x1b004, > + .halt_check = BRANCH_VOTED, > + .clkr = { > + .enable_reg = 0x1b004, > + .enable_mask = BIT(0), > + .hw.init = &(struct clk_init_data){ > + .name = "lcc_ahbfabric_cbc_clk", > + .ops = &clk_branch2_ops, > + .flags = CLK_IGNORE_UNUSED, > + }, > + }, > +}; > + [...] > + > +static struct clk_regmap *wcss_q6sstop_qcs404_clocks[] = { > + [WCSS_AHBFABRIC_CBCR_CLK] = &lcc_ahbfabric_cbc_clk.clkr, > + [WCSS_AHBS_CBCR_CLK] = &lcc_q6ss_ahbs_cbc_clk.clkr, > + [WCSS_TCM_CBCR_CLK] = &lcc_q6ss_tcm_slave_cbc_clk.clkr, > + [WCSS_AHBM_CBCR_CLK] = &lcc_q6ss_ahbm_cbc_clk.clkr, > + [WCSS_AXIM_CBCR_CLK] = &lcc_q6ss_axim_cbc_clk.clkr, > + [WCSS_BCR_CBCR_CLK] = &lcc_q6ss_bcr_sleep_clk.clkr, > +}; > + > +static const struct qcom_reset_map qdsp6ss_qcs404_resets[] = { > + [Q6SSTOP_QDSP6SS_RESET] = {0x14, 0}, Nitpick: Add spaces around { and } so it looks like { 0x14, 0 } > + [Q6SSTOP_QDSP6SS_CORE_RESET] = {0x14, 1}, > + [Q6SSTOP_QDSP6SS_BUS_RESET] = {0x14, 2}, > + [Q6SSTOP_CORE_ARCH_RESET] = {0x14, 12}, > +}; > +
next prev parent reply other threads:[~2019-02-05 21:53 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-02 15:26 [PATCH v4 0/8] Add non PAS wcss Q6 support for QCS404 Govind Singh 2019-02-02 15:26 ` [PATCH v4 1/8] dt-bindings: clock: qcom: Add QCOM WCSS GCC clock bindings Govind Singh 2019-02-19 6:45 ` Bjorn Andersson 2019-02-02 15:26 ` [PATCH v4 2/8] clk: qcom: Add WCSS gcc clock control for QCS404 Govind Singh 2019-02-05 21:49 ` Stephen Boyd 2019-02-05 21:49 ` Stephen Boyd 2019-02-02 15:26 ` [PATCH v4 3/8] dt-bindings: clock: qcom: Introduce QCOM WCSS Q6DSP clock bindings Govind Singh 2019-02-19 6:47 ` Bjorn Andersson 2019-02-02 15:26 ` [PATCH v4 4/8] clk: qcom: Add WCSS Q6DSP clock controller for QCS404 Govind Singh 2019-02-05 21:53 ` Stephen Boyd [this message] 2019-02-05 21:53 ` Stephen Boyd 2019-02-19 6:58 ` Bjorn Andersson 2019-02-02 15:26 ` [PATCH v4 5/8] remoteproc: qcom: wcss: populate hardcoded param using driver data Govind Singh 2019-02-19 7:02 ` Bjorn Andersson 2019-02-02 15:26 ` [PATCH v4 6/8] dt-binding: remoteproc: Add QTI WCSS PIL bindings Govind Singh 2019-02-19 7:10 ` Bjorn Andersson 2019-02-02 15:26 ` [PATCH v4 7/8] remoteproc: qcom: wcss: Add non pas wcss Q6 support for QCS404 Govind Singh 2019-02-02 15:26 ` [PATCH v4 8/8] remoteproc: qcom: wcss: explicitly request exclusive reset control Govind Singh
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=154940363974.169292.12160904228403236091@swboyd.mtv.corp.google.com \ --to=sboyd@kernel.org \ --cc=andy.gross@linaro.org \ --cc=bjorn.andersson@linaro.org \ --cc=david.brown@linaro.org \ --cc=devicetree@vger.kernel.org \ --cc=govinds@codeaurora.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-remoteproc@vger.kernel.org \ --cc=linux-soc@vger.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.