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

Commit 6865b7f9 authored by David S. Miller's avatar David S. Miller
Browse files

sparc64: Use clock{source,events}_calc_mult_shift().

parent e3f4e1cb
Loading
Loading
Loading
Loading
+2 −22
Original line number Diff line number Diff line
@@ -774,26 +774,9 @@ void __devinit setup_sparc64_timer(void)
static struct clocksource clocksource_tick = {
	.rating		= 100,
	.mask		= CLOCKSOURCE_MASK(64),
	.shift		= 16,
	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
};

static void __init setup_clockevent_multiplier(unsigned long hz)
{
	unsigned long mult, shift = 32;

	while (1) {
		mult = div_sc(hz, NSEC_PER_SEC, shift);
		if (mult && (mult >> 32UL) == 0UL)
			break;

		shift--;
	}

	sparc64_clockevent.shift = shift;
	sparc64_clockevent.mult = mult;
}

static unsigned long tb_ticks_per_usec __read_mostly;

void __delay(unsigned long loops)
@@ -828,9 +811,7 @@ void __init time_init(void)
		clocksource_hz2mult(freq, SPARC64_NSEC_PER_CYC_SHIFT);

	clocksource_tick.name = tick_ops->name;
	clocksource_tick.mult =
		clocksource_hz2mult(freq,
				    clocksource_tick.shift);
	clocksource_calc_mult_shift(&clocksource_tick, freq, 4);
	clocksource_tick.read = clocksource_tick_read;

	printk("clocksource: mult[%x] shift[%d]\n",
@@ -839,8 +820,7 @@ void __init time_init(void)
	clocksource_register(&clocksource_tick);

	sparc64_clockevent.name = tick_ops->name;

	setup_clockevent_multiplier(freq);
	clockevents_calc_mult_shift(&sparc64_clockevent, freq, 4);

	sparc64_clockevent.max_delta_ns =
		clockevent_delta2ns(0x7fffffffffffffffUL, &sparc64_clockevent);