public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@codeaurora.org>
To: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Cc: Mikko Perttunen <cyndis@kapsi.fi>,
	mturquette@baylibre.com, linux-kernel@vger.kernel.org,
	linux-clk@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-mips@linux-mips.org,
	linux-rpi-kernel@lists.infradead.org,
	patches@opensource.cirrus.com,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-amlogic@lists.infradead.org, linux-arm-msm@vger.kernel.org,
	linux-soc@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org, linux-media@vger.kernel.org,
	linux-rtc@vger.kernel.org
Subject: Re: [PATCH 01/33] clk_ops: change round_rate() to return unsigned long
Date: Tue, 2 Jan 2018 11:01:59 -0800	[thread overview]
Message-ID: <20180102190159.GH7997@codeaurora.org> (raw)
In-Reply-To: <6d83a5c3-6589-24bc-4ca5-4d1bbca47432@nexus-software.ie>

On 12/31, Bryan O'Donoghue wrote:
> On 30/12/17 16:36, Mikko Perttunen wrote:
> >FWIW, we had this problem some years ago with the Tegra CPU clock
> >- then it was determined that a simpler solution was to have the
> >determine_rate callback support unsigned long rates - so clock
> >drivers that need to return rates higher than 2^31 can instead
> >implement the determine_rate callback. That is what's currently
> >implemented.
> >
> >Mikko
> 
> Granted we could work around it but, having both zero and less than
> zero indicate error means you can't support larger than LONG_MAX
> which is I think worth fixing.
> 

Ok. But can you implement the determine_rate op instead of the
round_rate op for your clk? It's not a work-around, it's the
preferred solution. That would allow rates larger than 2^31 for
the clk without pushing through a change to all the drivers to
express zero as "error" and non-zero as the rounded rate.

I'm not entirely opposed to this approach, because we probably
don't care to pass the particular error value from a clk provider
to a clk consumer about what the error is. It's actually what we
proposed as the solution for clk_round_rate() to return values
larger than LONG_MAX to consumers. But doing that consumer API
change or this provider side change is going to require us to
evaluate all the consumers of these clks to make sure they don't
check for some error value that's less than zero. This series
does half the work, by changing the provider side, while ignoring
the consumer side and any potential fallout of the less than zero
to zero return value change.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

  reply	other threads:[~2018-01-02 19:02 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-30  1:12 [PATCH 00/33] change clk_ops->round_rate to scale past LONG_MAX Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 01/33] clk_ops: change round_rate() to return unsigned long Bryan O'Donoghue
2017-12-30 16:36   ` Mikko Perttunen
2017-12-31 13:40     ` Bryan O'Donoghue
2018-01-02 19:01       ` Stephen Boyd [this message]
2018-01-02 20:43         ` Bryan O'Donoghue
2018-01-02 23:28           ` Stephen Boyd
2018-01-01 14:41   ` kbuild test robot
2018-01-01 14:47   ` kbuild test robot
2018-01-01 18:01   ` kbuild test robot
2017-12-30  1:12 ` [PATCH 02/33] clk: core: update divider_round_rate functions " Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 03/33] clk: composite: allow round_rate to scale past LONG_MAX on 32 bit systems Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 04/33] clk: omap2: change omap2_round_to_table_rate return logic Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 05/33] clk: at91: update clk_pll_get_best_div_mul to return unsigned long Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 06/33] clk: at91: change clk_pll_get_best_div_mul() return logic Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 07/33] clk: axs10x: change i2s_pll_round_rate " Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 08/33] clk: bcm2835: change bcm2835_pll_rate_from_divisors to return unsigned long Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 09/33] clk: bcm2835: change clk_get_rate() helper return type Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 10/33] clk: bcm: iproc: change iproc_asiu_clk_round_rate() return logic Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 11/33] clk: bcm: iproc: change iproc_pll_round_rate() " Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 12/33] clk: cdce925: remove unnecessary long casts on return Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 13/33] clk: si514: change si514_round_rate() return logic Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 14/33] clk: vc5: change vc5_mux_round_rate() " Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 15/33] clk: vt8500: change vtwm_pll_round_rate() " Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 16/33] clk: vt8500: match temp holder variable to fn return type Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 17/33] clk: mvebu: change dove_round_rate() return logic Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 18/33] clk: mxs: change clk_frac_round_rate() " Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 19/33] clk: nxp: change lpc18xx_pll0_round_rate() " Bryan O'Donoghue
2017-12-30  1:12 ` [PATCH 20/33] clk: lpc32xx: change clk_hclk_pll_round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 21/33] clk: qcom: ipq4019: change clk_cpu_div_round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 22/33] clk: sirf: remove unnecessary long cast on return Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 23/33] clk: tegra: change clk_sync_source_round_rate() return logic Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 24/33] clk: tegra: bpmp: change tegra_bpmp_clk_round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 25/33] clk: tegra: pll: change clk_pll_round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 26/33] clk: ti: composite: " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 27/33] clk: ti: fapll: change round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 28/33] clk: zte: change zx_audio_round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 29/33] clk: axs10x: change axs10x_pll_round_rate " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 30/33] clk: at91: change round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 31/33] clk: ARC: change hsdk_pll_round_rate () " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 32/33] clk: lpc32xx: change round_rate() " Bryan O'Donoghue
2017-12-30  1:13 ` [PATCH 33/33] clk: change handling of round_rate() such that only zero is an error Bryan O'Donoghue

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=20180102190159.GH7997@codeaurora.org \
    --to=sboyd@codeaurora.org \
    --cc=cyndis@kapsi.fi \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-soc@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=patches@opensource.cirrus.com \
    --cc=pure.logic@nexus-software.ie \
    --cc=uclinux-h8-devel@lists.sourceforge.jp \
    /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