From: Johan Hovold <johan@kernel.org>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: "Andy Gross" <agross@kernel.org>,
"Bjorn Andersson" <andersson@kernel.org>,
"Konrad Dybcio" <konrad.dybcio@somainline.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Jingoo Han" <jingoohan1@gmail.com>,
"Gustavo Pimentel" <gustavo.pimentel@synopsys.com>,
"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH 2/4] PCI: qcom: Use clk_bulk_ API for 1.0.0 clocks handling
Date: Thu, 20 Oct 2022 13:08:40 +0200 [thread overview]
Message-ID: <Y1EsOGhEqNe9Cxo6@hovoldconsulting.com> (raw)
In-Reply-To: <20221020103120.1541862-3-dmitry.baryshkov@linaro.org>
On Thu, Oct 20, 2022 at 01:31:18PM +0300, Dmitry Baryshkov wrote:
> Change hand-coded implementation of bulk clocks to use the existing
Let's hope everything is "hand-coded" at least for a few years still
(job security). ;)
Perhaps rephrase using "open-coded"?
> clk_bulk_* API.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/pci/controller/dwc/pcie-qcom.c | 67 ++++++--------------------
> 1 file changed, 16 insertions(+), 51 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
> index 939f19241356..74588438db07 100644
> --- a/drivers/pci/controller/dwc/pcie-qcom.c
> +++ b/drivers/pci/controller/dwc/pcie-qcom.c
> @@ -133,10 +133,7 @@ struct qcom_pcie_resources_2_1_0 {
> };
>
> struct qcom_pcie_resources_1_0_0 {
> - struct clk *iface;
> - struct clk *aux;
> - struct clk *master_bus;
> - struct clk *slave_bus;
> + struct clk_bulk_data clks[4];
> struct reset_control *core;
> struct regulator *vdda;
> };
> @@ -472,26 +469,20 @@ static int qcom_pcie_get_resources_1_0_0(struct qcom_pcie *pcie)
> struct qcom_pcie_resources_1_0_0 *res = &pcie->res.v1_0_0;
> struct dw_pcie *pci = pcie->pci;
> struct device *dev = pci->dev;
> + int ret;
>
> res->vdda = devm_regulator_get(dev, "vdda");
> if (IS_ERR(res->vdda))
> return PTR_ERR(res->vdda);
>
> - res->iface = devm_clk_get(dev, "iface");
> - if (IS_ERR(res->iface))
> - return PTR_ERR(res->iface);
> -
> - res->aux = devm_clk_get(dev, "aux");
> - if (IS_ERR(res->aux))
> - return PTR_ERR(res->aux);
> -
> - res->master_bus = devm_clk_get(dev, "master_bus");
> - if (IS_ERR(res->master_bus))
> - return PTR_ERR(res->master_bus);
> + res->clks[0].id = "aux";
> + res->clks[1].id = "iface";
> + res->clks[2].id = "master_bus";
> + res->clks[3].id = "slave_bus";
>
> - res->slave_bus = devm_clk_get(dev, "slave_bus");
> - if (IS_ERR(res->slave_bus))
> - return PTR_ERR(res->slave_bus);
> + ret = devm_clk_bulk_get(dev, ARRAY_SIZE(res->clks), res->clks);
> + if (ret < 0)
> + return ret;
Are you sure there are no dependencies between these clocks and that
they can be enabled and disabled in any order?
Are you also convinced that they will always be enabled and disabled
together (e.g. not controlled individually during suspend)?
> - ret = clk_prepare_enable(res->aux);
> + ret = clk_bulk_prepare_enable(ARRAY_SIZE(res->clks), res->clks);
> if (ret) {
> - dev_err(dev, "cannot prepare/enable aux clock\n");
> + dev_err(dev, "cannot prepare/enable clocks\n");
The bulk API already logs an error so you can drop the dev_err().
These comments apply also to the other patches.
Johan
next prev parent reply other threads:[~2022-10-20 11:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-20 10:31 [PATCH 0/4] PCI: qcom: use clk_bulk API Dmitry Baryshkov
2022-10-20 10:31 ` [PATCH 1/4] PCI: qcom: Move 2_1_0 defines close to the struct definition Dmitry Baryshkov
2022-10-20 10:31 ` [PATCH 2/4] PCI: qcom: Use clk_bulk_ API for 1.0.0 clocks handling Dmitry Baryshkov
2022-10-20 11:08 ` Johan Hovold [this message]
2022-10-20 11:22 ` Dmitry Baryshkov
2022-10-20 11:32 ` Johan Hovold
2022-10-20 11:45 ` Dmitry Baryshkov
2023-01-13 15:54 ` Lorenzo Pieralisi
2023-01-16 11:26 ` Johan Hovold
2022-10-20 10:31 ` [PATCH 3/4] PCI: qcom: Use clk_bulk_ API for 2.3.2 " Dmitry Baryshkov
2022-10-23 23:27 ` Han Jingoo
2022-10-20 10:31 ` [PATCH 4/4] PCI: qcom: Use clk_bulk_ API for 2.3.3 " Dmitry Baryshkov
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=Y1EsOGhEqNe9Cxo6@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=bhelgaas@google.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=gustavo.pimentel@synopsys.com \
--cc=jingoohan1@gmail.com \
--cc=konrad.dybcio@somainline.org \
--cc=kw@linux.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=robh+dt@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
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