From: Xiubo Li <Li.Xiubo@freescale.com>
To: <daniel.lezcano@linaro.org>, <tglx@linutronix.de>
Cc: <linux-kernel@vger.kernel.org>, Xiubo Li <Li.Xiubo@freescale.com>
Subject: [PATCHv2 4/4] Clocksource: Flextimer: Fix counter clock prescaler calculation.
Date: Fri, 5 Sep 2014 13:02:20 +0800 [thread overview]
Message-ID: <1409893340-30027-5-git-send-email-Li.Xiubo@freescale.com> (raw)
In-Reply-To: <1409893340-30027-1-git-send-email-Li.Xiubo@freescale.com>
The old code will use the uncorrect clock prescaler after the
loop and the 'ps' must minus one after the loop.
This patch will use new style of this loop and will fix this bug
at the same time.
Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
---
drivers/clocksource/fsl_ftm_timer.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/clocksource/fsl_ftm_timer.c b/drivers/clocksource/fsl_ftm_timer.c
index c0ce603..2b0983d 100644
--- a/drivers/clocksource/fsl_ftm_timer.c
+++ b/drivers/clocksource/fsl_ftm_timer.c
@@ -300,16 +300,15 @@ static unsigned long __init ftm_clk_init(struct device_node *np)
static int __init ftm_calc_closest_round_cyc(unsigned long freq)
{
- priv->ps = 0;
+ int div;
/* The counter register is only using the lower 16 bits, and
* if the 'freq' value is to big here, then the periodic_cyc
* may exceed 0xFFFF.
*/
- do {
- priv->periodic_cyc = DIV_ROUND_CLOSEST(freq,
- HZ * (1 << priv->ps++));
- } while (priv->periodic_cyc > 0xFFFF);
+ for (priv->ps = 0, priv->periodic_cyc = ~0UL, div = HZ;
+ priv->periodic_cyc > 0xffff; priv->ps++, div *= 2)
+ priv->periodic_cyc = DIV_ROUND_CLOSEST(freq, div);
if (priv->ps > FTM_PS_MAX) {
pr_err("ftm: the prescaler is %lu > %d\n",
--
2.1.0.27.g96db324
prev parent reply other threads:[~2014-09-05 6:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-05 5:02 [PATCHv2 0/4] Clocksource: Flextimer: add LS1 support Xiubo Li
2014-09-05 5:02 ` [PATCHv2 1/4] Clocksource: Flextimer: Use internal clocksource read API Xiubo Li
2014-09-05 15:40 ` Thomas Gleixner
2014-09-09 1:55 ` Li.Xiubo
2014-09-05 5:02 ` [PATCHv2 2/4] Clocksource: Flextimer: Remove the useless code Xiubo Li
2014-09-05 5:02 ` [PATCHv2 3/4] Clocksource: Flextimer: Set cpumask to cpu_possible_mask Xiubo Li
2014-09-05 5:02 ` Xiubo Li [this message]
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=1409893340-30027-5-git-send-email-Li.Xiubo@freescale.com \
--to=li.xiubo@freescale.com \
--cc=daniel.lezcano@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
/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®