[PATCH v2 RESEND 1/3] clocksource/vt8500: Use MIN_OSCR_DELTA from PXA
Thomas Gleixner
tglx at linutronix.de
Fri Jan 1 01:58:06 PST 2016
On Thu, 31 Dec 2015, Roman Volkov wrote:
> From: Roman Volkov <rvolkov at v1ros.org>
>
> Since vt8500 and PXA timers are identical, use MIN_OSCR_DELTA from PXA,
> which is bigger than existing value. It is required to determine the
> minimum delay which hardware can generate.
This changelog makes no sense at all.
> This commit fixes vt8500 breakage in Linux 4.2 introduced by
> c6eb3f7 ('hrtimer: Get rid of hrtimer softirq')
> Signed-off-by: Roman Volkov <rvolkov at v1ros.org>
> ---
> drivers/clocksource/vt8500_timer.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clocksource/vt8500_timer.c b/drivers/clocksource/vt8500_timer.c
> index a92e94b..dfc3bb4 100644
> --- a/drivers/clocksource/vt8500_timer.c
> +++ b/drivers/clocksource/vt8500_timer.c
> @@ -50,6 +50,8 @@
>
> #define msecs_to_loops(t) (loops_per_jiffy / 1000 * HZ * t)
>
> +#define MIN_OSCR_DELTA 16
> +
> static void __iomem *regbase;
>
> static cycle_t vt8500_timer_read(struct clocksource *cs)
> @@ -80,7 +82,7 @@ static int vt8500_timer_set_next_event(unsigned long cycles,
> cpu_relax();
> writel((unsigned long)alarm, regbase + TIMER_MATCH_VAL);
>
> - if ((signed)(alarm - clocksource.read(&clocksource)) <= 16)
> + if ((signed)(alarm - clocksource.read(&clocksource)) <= MIN_OSCR_DELTA)
So how is that value bigger? MIN_OSCR_DELTA is still 16
> return -ETIME;
>
> writel(1, regbase + TIMER_IER_VAL);
> @@ -151,7 +153,7 @@ static void __init vt8500_timer_init(struct device_node *np)
> pr_err("%s: setup_irq failed for %s\n", __func__,
> clockevent.name);
> clockevents_config_and_register(&clockevent, VT8500_TIMER_HZ,
> - 4, 0xf0000000);
> + MIN_OSCR_DELTA * 2, 0xf0000000);
Now here is the real change. You use a larger minimum tick value so that the
above check in vt8500_timer_set_next_event() actually works. That's what you
want to explain in the changelog. The blurb about reusing MIN_OSCR_DELTA is
just useless.
A proper changelog describes:
1) the problem and the resulting wreckage
2) the solution
Thanks,
tglx
More information about the linux-arm-kernel
mailing list