[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <378698e8-bd1e-5cea-7ca3-0560759e561a@codeaurora.org>
Date: Fri, 10 Jul 2020 09:47:19 +0530
From: Rajendra Nayak <rnayak@...eaurora.org>
To: Douglas Anderson <dianders@...omium.org>,
Mark Brown <broonie@...nel.org>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>
Cc: mkshah@...eaurora.org, georgi.djakov@...aro.org,
Akash Asthana <akashast@...eaurora.org>, swboyd@...omium.org,
linux-arm-msm@...r.kernel.org, mka@...omium.org,
ctheegal@...eaurora.org, linux-kernel@...r.kernel.org,
linux-spi@...r.kernel.org
Subject: Re: [PATCH v2] spi: spi-geni-qcom: Set the clock properly at runtime
resume
On 7/9/2020 8:10 PM, Douglas Anderson wrote:
> In the patch ("spi: spi-geni-qcom: Avoid clock setting if not needed")
> we avoid a whole pile of clock code. As part of that, we should have
> restored the clock at runtime resume. Do that.
>
> It turns out that, at least with today's configurations, this doesn't
> actually matter. That's because none of the current device trees have
> an OPP table for geni SPI yet. That makes dev_pm_opp_set_rate(dev, 0)
> a no-op. This is why it wasn't noticed in the testing of the original
> patch. It's still a good idea to fix, though.
>
> Signed-off-by: Douglas Anderson <dianders@...omium.org>
> Acked-by: Mark Brown <broonie@...nel.org>
Reviewed-by: Rajendra Nayak <rnayak@...eaurora.org>
> ---
> Sending this as a separate patch even though I think the patch it's
> fixing [1] hasn't landed yet. I'd be happy if this was squashed into
> that patch when landing if that suits everyone, but it could land on
> its own too.
>
> Like the patch it's fixing, this needs to target the Qualcomm tree in
> order to avoid merge conflicts.
>
> [1] https://lore.kernel.org/r/20200701174506.1.Icfdcee14649fc0a6c38e87477b28523d4e60bab3@changeid
>
> Changes in v2:
> - Return error from runtime resume if dev_pm_opp_set_rate() fails.
>
> drivers/spi/spi-geni-qcom.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c
> index 97fac5ea6afd..0e11a90490ff 100644
> --- a/drivers/spi/spi-geni-qcom.c
> +++ b/drivers/spi/spi-geni-qcom.c
> @@ -79,6 +79,7 @@ struct spi_geni_master {
> u32 tx_wm;
> u32 last_mode;
> unsigned long cur_speed_hz;
> + unsigned long cur_sclk_hz;
> unsigned int cur_bits_per_word;
> unsigned int tx_rem_bytes;
> unsigned int rx_rem_bytes;
> @@ -116,6 +117,9 @@ static int get_spi_clk_cfg(unsigned int speed_hz,
> ret = dev_pm_opp_set_rate(mas->dev, sclk_freq);
> if (ret)
> dev_err(mas->dev, "dev_pm_opp_set_rate failed %d\n", ret);
> + else
> + mas->cur_sclk_hz = sclk_freq;
> +
> return ret;
> }
>
> @@ -670,7 +674,11 @@ static int __maybe_unused spi_geni_runtime_resume(struct device *dev)
> if (ret)
> return ret;
>
> - return geni_se_resources_on(&mas->se);
> + ret = geni_se_resources_on(&mas->se);
> + if (ret)
> + return ret;
> +
> + return dev_pm_opp_set_rate(mas->dev, mas->cur_sclk_hz);
> }
>
> static int __maybe_unused spi_geni_suspend(struct device *dev)
>
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
Powered by blists - more mailing lists