mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Bryan O'Donoghue <pure.logic@nexus-software.ie>
To: mturquette@baylibre.com, sboyd@codeaurora.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org
Cc: Bryan O'Donoghue <pure.logic@nexus-software.ie>,
	Boris Brezillon <boris.brezillon@free-electrons.com>
Subject: [PATCH v3 06/34] clk: at91: change clk_pll_get_best_div_mul() return logic
Date: Mon,  1 Jan 2018 19:42:45 +0000	[thread overview]
Message-ID: <1514835793-1104-7-git-send-email-pure.logic@nexus-software.ie> (raw)
In-Reply-To: <1514835793-1104-1-git-send-email-pure.logic@nexus-software.ie>

This patch updates the round_rate() logic here to return zero instead of a
negative number on error.

In conjunction with higher-level changes associated with acting on the
return value of clk_ops->round_rate() it is then possible to have
clk_ops->round_rate() return values from 1 Hz to ULONG_MAX Hz instead of
the current limitation of 1 Hz to LONG_MAX Hz.

Signed-off-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-clk@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/clk/at91/clk-pll.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/clk/at91/clk-pll.c b/drivers/clk/at91/clk-pll.c
index 630203e..1c90ae7 100644
--- a/drivers/clk/at91/clk-pll.c
+++ b/drivers/clk/at91/clk-pll.c
@@ -157,14 +157,14 @@ static unsigned long clk_pll_get_best_div_mul(struct clk_pll *pll,
 							pll->characteristics;
 	unsigned long bestremainder = ULONG_MAX;
 	unsigned long maxdiv, mindiv, tmpdiv;
-	long bestrate = -ERANGE;
+	unsigned long bestrate = 0;
 	unsigned long bestdiv;
 	unsigned long bestmul;
 	int i = 0;
 
 	/* Check if parent_rate is a valid input rate */
 	if (parent_rate < characteristics->input.min)
-		return -ERANGE;
+		return 0;
 
 	/*
 	 * Calculate minimum divider based on the minimum multiplier, the
@@ -179,7 +179,7 @@ static unsigned long clk_pll_get_best_div_mul(struct clk_pll *pll,
 	if (parent_rate > characteristics->input.max) {
 		tmpdiv = DIV_ROUND_UP(parent_rate, characteristics->input.max);
 		if (tmpdiv > PLL_DIV_MAX)
-			return -ERANGE;
+			return 0;
 
 		if (tmpdiv > mindiv)
 			mindiv = tmpdiv;
@@ -234,8 +234,8 @@ static unsigned long clk_pll_get_best_div_mul(struct clk_pll *pll,
 			break;
 	}
 
-	/* We haven't found any multiplier/divider pair => return -ERANGE */
-	if (bestrate < 0)
+	/* We haven't found any multiplier/divider pair => return 0 */
+	if (bestrate == 0)
 		return bestrate;
 
 	/* Check if bestrate is a valid output rate  */
@@ -246,7 +246,7 @@ static unsigned long clk_pll_get_best_div_mul(struct clk_pll *pll,
 	}
 
 	if (i >= characteristics->num_output)
-		return -ERANGE;
+		return 0;
 
 	if (div)
 		*div = bestdiv;
@@ -271,15 +271,15 @@ static int clk_pll_set_rate(struct clk_hw *hw, unsigned long rate,
 			    unsigned long parent_rate)
 {
 	struct clk_pll *pll = to_clk_pll(hw);
-	long ret;
+	unsigned long ret;
 	u32 div;
 	u32 mul;
 	u32 index;
 
 	ret = clk_pll_get_best_div_mul(pll, rate, parent_rate,
 				       &div, &mul, &index);
-	if (ret < 0)
-		return ret;
+	if (ret == 0)
+		return -ERANGE;
 
 	pll->range = index;
 	pll->div = div;
-- 
2.7.4

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

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-01 19:42 [PATCH v3 00/34] change clk_ops->round_rate to scale past LONG_MAX Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 01/34] clk_ops: change round_rate() to return unsigned long Bryan O'Donoghue
2018-01-03 10:07   ` Mauro Carvalho Chehab
2018-01-01 19:42 ` [PATCH v3 02/34] clk: core: update divider_round_rate functions " Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 03/34] clk: composite: allow round_rate to scale past LONG_MAX on 32 bit systems Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 04/34] clk: omap2: change omap2_round_to_table_rate return logic Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 05/34] clk: at91: update clk_pll_get_best_div_mul to return unsigned long Bryan O'Donoghue
2018-01-01 19:42 ` Bryan O'Donoghue [this message]
2018-01-01 19:42 ` [PATCH v3 07/34] clk: axs10x: change i2s_pll_round_rate return logic Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 08/34] clk: bcm2835: change bcm2835_pll_rate_from_divisors to return unsigned long Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 09/34] clk: bcm2835: change clk_get_rate() helper return type Bryan O'Donoghue
2018-01-02 22:21   ` Eric Anholt
2018-01-01 19:42 ` [PATCH v3 10/34] clk: bcm: iproc: change iproc_asiu_clk_round_rate() return logic Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 11/34] clk: bcm: iproc: change iproc_pll_round_rate() " Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 12/34] clk: cdce925: remove unnecessary long casts on return Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 13/34] clk: si514: change si514_round_rate() return logic Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 14/34] clk: vc5: change vc5_pfd_round_rate() " Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 15/34] clk: vc5: change vc5_dbl_round_rate() " Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 16/34] clk: vt8500: change vtwm_pll_round_rate() " Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 17/34] clk: vt8500: match temp holder variable to fn return type Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 18/34] clk: mvebu: change dove_round_rate() return logic Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 19/34] clk: mxs: change clk_frac_round_rate() " Bryan O'Donoghue
2018-01-01 19:42 ` [PATCH v3 20/34] clk: nxp: change lpc18xx_pll0_round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 21/34] clk: lpc32xx: change clk_hclk_pll_round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 22/34] clk: qcom: ipq4019: change clk_cpu_div_round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 23/34] clk: sirf: remove unnecessary long cast on return Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 24/34] clk: tegra: change clk_sync_source_round_rate() return logic Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 25/34] clk: tegra: bpmp: change tegra_bpmp_clk_round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 26/34] clk: tegra: pll: change clk_pll_round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 27/34] clk: ti: composite: " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 28/34] clk: ti: fapll: change round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 29/34] clk: zte: change zx_audio_round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 30/34] clk: axs10x: change axs10x_pll_round_rate " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 31/34] clk: at91: change round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 32/34] clk: ARC: change hsdk_pll_round_rate () " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 33/34] clk: lpc32xx: change round_rate() " Bryan O'Donoghue
2018-01-01 19:43 ` [PATCH v3 34/34] 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=1514835793-1104-7-git-send-email-pure.logic@nexus-software.ie \
    --to=pure.logic@nexus-software.ie \
    --cc=boris.brezillon@free-electrons.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@codeaurora.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

all inboxes | Powered by JetHome®