From: linus.ml.walleij@gmail.com (Linus Walleij)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] ARM: move SPEAr to use common mult/shift calculation code
Date: Mon, 12 Jul 2010 10:00:51 +0200 [thread overview]
Message-ID: <AANLkTimo6TUs2YS-GpbiasI3mhatlPVXKq7UonJCicnv@mail.gmail.com> (raw)
In-Reply-To: <1275067996-17233-1-git-send-email-linus.walleij@stericsson.com>
Ping on this patch, if it looks OK then please ACK it.
Yours,
Linus Walleij
2010/5/28 Linus Walleij <linus.walleij@stericsson.com>:
> Since the infrastructure for determining shift/mult values from a
> clock rate and a minimum programmable rate is now in the kernel,
> lets remove this custom code.
>
> Cc: Viresh KUMAR <viresh.kumar@st.com>
> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
> ---
> Viresh: I cannot test this change, but I have compiled it against
> spear600_defconfig. You'd have to test it and Acked-by: it before
> I do anything else with it. Try to think about what a minimum range
> would be for the generic SPEAr platform...
> ---
> ?arch/arm/plat-spear/time.c | ? 47 ++++++-------------------------------------
> ?1 files changed, 7 insertions(+), 40 deletions(-)
>
> diff --git a/arch/arm/plat-spear/time.c b/arch/arm/plat-spear/time.c
> index a1025d3..ab21165 100644
> --- a/arch/arm/plat-spear/time.c
> +++ b/arch/arm/plat-spear/time.c
> @@ -58,6 +58,11 @@
>
> ?#define INT_STATUS ? ? ? ? ? ? 0x1
>
> +/*
> + * Minimum clocksource/clockevent timer range in seconds
> + */
> +#define SPEAR_MIN_RANGE 4
> +
> ?static __iomem void *gpt_base;
> ?static struct clk *gpt_clk;
>
> @@ -66,44 +71,6 @@ static void clockevent_set_mode(enum clock_event_mode mode,
> ?static int clockevent_next_event(unsigned long evt,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? struct clock_event_device *clk_event_dev);
>
> -/*
> - * Following clocksource_set_clock and clockevent_set_clock picked
> - * from arch/mips/kernel/time.c
> - */
> -
> -void __init clocksource_set_clock(struct clocksource *cs, unsigned int clock)
> -{
> - ? ? ? u64 temp;
> - ? ? ? u32 shift;
> -
> - ? ? ? /* Find a shift value */
> - ? ? ? for (shift = 32; shift > 0; shift--) {
> - ? ? ? ? ? ? ? temp = (u64) NSEC_PER_SEC << shift;
> - ? ? ? ? ? ? ? do_div(temp, clock);
> - ? ? ? ? ? ? ? if ((temp >> 32) == 0)
> - ? ? ? ? ? ? ? ? ? ? ? break;
> - ? ? ? }
> - ? ? ? cs->shift = shift;
> - ? ? ? cs->mult = (u32) temp;
> -}
> -
> -void __init clockevent_set_clock(struct clock_event_device *cd,
> - ? ? ? unsigned int clock)
> -{
> - ? ? ? u64 temp;
> - ? ? ? u32 shift;
> -
> - ? ? ? /* Find a shift value */
> - ? ? ? for (shift = 32; shift > 0; shift--) {
> - ? ? ? ? ? ? ? temp = (u64) clock << shift;
> - ? ? ? ? ? ? ? do_div(temp, NSEC_PER_SEC);
> - ? ? ? ? ? ? ? if ((temp >> 32) == 0)
> - ? ? ? ? ? ? ? ? ? ? ? break;
> - ? ? ? }
> - ? ? ? cd->shift = shift;
> - ? ? ? cd->mult = (u32) temp;
> -}
> -
> ?static cycle_t clocksource_read_cycles(struct clocksource *cs)
> ?{
> ? ? ? ?return (cycle_t) readw(gpt_base + COUNT(CLKSRC));
> @@ -138,7 +105,7 @@ static void spear_clocksource_init(void)
> ? ? ? ?val |= CTRL_ENABLE ;
> ? ? ? ?writew(val, gpt_base + CR(CLKSRC));
>
> - ? ? ? clocksource_set_clock(&clksrc, tick_rate);
> + ? ? ? clocksource_calc_mult_shift(&clksrc, tick_rate, SPEAR_MIN_RANGE);
>
> ? ? ? ?/* register the clocksource */
> ? ? ? ?clocksource_register(&clksrc);
> @@ -233,7 +200,7 @@ static void __init spear_clockevent_init(void)
> ? ? ? ?tick_rate = clk_get_rate(gpt_clk);
> ? ? ? ?tick_rate >>= CTRL_PRESCALER16;
>
> - ? ? ? clockevent_set_clock(&clkevt, tick_rate);
> + ? ? ? clockevents_calc_mult_shift(&clkevt, tick_rate, SPEAR_MIN_RANGE);
>
> ? ? ? ?clkevt.max_delta_ns = clockevent_delta2ns(0xfff0,
> ? ? ? ? ? ? ? ? ? ? ? ?&clkevt);
> --
> 1.6.3.3
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
next prev parent reply other threads:[~2010-07-12 8:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-28 17:33 [PATCH 1/2] ARM: move SPEAr to use common mult/shift calculation code Linus Walleij
2010-07-12 8:00 ` Linus Walleij [this message]
2010-07-19 13:11 ` shiraz hashim
2010-07-19 18:19 ` Linus Walleij
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=AANLkTimo6TUs2YS-GpbiasI3mhatlPVXKq7UonJCicnv@mail.gmail.com \
--to=linus.ml.walleij@gmail.com \
--cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).