Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 149653
b: refs/heads/master
c: 8d165db
h: refs/heads/master
i:
  149651: 3db5c8d
v: v3
  • Loading branch information
Anton Blanchard authored and Benjamin Herrenschmidt committed May 21, 2009
1 parent eb2340e commit 210c1ca
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9aa4e7b1699d0fa197778da96de7e03fa2374f0a
refs/heads/master: 8d165db10772f238103c3e8f955c54145e5c07f3
21 changes: 18 additions & 3 deletions trunk/arch/powerpc/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ static void decrementer_set_mode(enum clock_event_mode mode,
static struct clock_event_device decrementer_clockevent = {
.name = "decrementer",
.rating = 200,
.shift = 16,
.shift = 0, /* To be filled in */
.mult = 0, /* To be filled in */
.irq = 0,
.set_next_event = decrementer_set_next_event,
Expand Down Expand Up @@ -843,6 +843,22 @@ static void decrementer_set_mode(enum clock_event_mode mode,
decrementer_set_next_event(DECREMENTER_MAX, dev);
}

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

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

shift--;
}

decrementer_clockevent.shift = shift;
decrementer_clockevent.mult = mult;
}

static void register_decrementer_clockevent(int cpu)
{
struct clock_event_device *dec = &per_cpu(decrementers, cpu).event;
Expand All @@ -860,8 +876,7 @@ static void __init init_decrementer_clockevent(void)
{
int cpu = smp_processor_id();

decrementer_clockevent.mult = div_sc(ppc_tb_freq, NSEC_PER_SEC,
decrementer_clockevent.shift);
setup_clockevent_multiplier(ppc_tb_freq);
decrementer_clockevent.max_delta_ns =
clockevent_delta2ns(DECREMENTER_MAX, &decrementer_clockevent);
decrementer_clockevent.min_delta_ns =
Expand Down

0 comments on commit 210c1ca

Please sign in to comment.