Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8f77436 authored by Michal Simek's avatar Michal Simek
Browse files

microblaze: Decrease time shifting values



Lower shifting values ensure that shifted 32bit counter
value doesn't exceed 64bit cycle variable too fast.

Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
parent 615748ae
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <asm/prom.h>
#include <asm/irq.h>
#include <asm/system.h>
#include <linux/cnt32_to_63.h>

#ifdef CONFIG_SELFMOD_TIMER
#include <asm/selfmod.h>
@@ -135,7 +136,7 @@ static void microblaze_timer_set_mode(enum clock_event_mode mode,
static struct clock_event_device clockevent_microblaze_timer = {
	.name		= "microblaze_clockevent",
	.features       = CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_PERIODIC,
	.shift		= 24,
	.shift		= 8,
	.rating		= 300,
	.set_next_event	= microblaze_timer_set_next_event,
	.set_mode	= microblaze_timer_set_mode,
@@ -195,7 +196,7 @@ static cycle_t microblaze_cc_read(const struct cyclecounter *cc)
static struct cyclecounter microblaze_cc = {
	.read = microblaze_cc_read,
	.mask = CLOCKSOURCE_MASK(32),
	.shift = 24,
	.shift = 8,
};

int __init init_microblaze_timecounter(void)
@@ -213,7 +214,7 @@ static struct clocksource clocksource_microblaze = {
	.rating		= 300,
	.read		= microblaze_read,
	.mask		= CLOCKSOURCE_MASK(32),
	.shift		= 24, /* I can shift it */
	.shift		= 8, /* I can shift it */
	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
};

@@ -302,7 +303,7 @@ unsigned long long notrace sched_clock(void)
{
	if (timer_initialized) {
		struct clocksource *cs = &clocksource_microblaze;
		cycle_t cyc = cs->read(NULL);
		cycle_t cyc = cnt32_to_63(cs->read(NULL));
		return clocksource_cyc2ns(cyc, cs->mult, cs->shift);
	}
	return 0;