Commit 81759360 authored by Anton Blanchard's avatar Anton Blanchard Committed by Michael Ellerman

powerpc/time: Add set_state_oneshot_stopped decrementer callback

If CONFIG_PPC_WATCHDOG is enabled we always cap the decrementer to
0x7fffffff:

       if (IS_ENABLED(CONFIG_PPC_WATCHDOG))
                set_dec(0x7fffffff);
        else
                set_dec(decrementer_max);

If there are no future events, we don't reprogram the decrementer
after this and we end up with 0x7fffffff even on a large decrementer
capable system.

As suggested by Nick, add a set_state_oneshot_stopped callback
so we program the decrementer with decrementer_max if there are
no future events.
Signed-off-by: default avatarAnton Blanchard <anton@ozlabs.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 8b78fdb0
...@@ -111,6 +111,7 @@ struct clock_event_device decrementer_clockevent = { ...@@ -111,6 +111,7 @@ struct clock_event_device decrementer_clockevent = {
.rating = 200, .rating = 200,
.irq = 0, .irq = 0,
.set_next_event = decrementer_set_next_event, .set_next_event = decrementer_set_next_event,
.set_state_oneshot_stopped = decrementer_shutdown,
.set_state_shutdown = decrementer_shutdown, .set_state_shutdown = decrementer_shutdown,
.tick_resume = decrementer_shutdown, .tick_resume = decrementer_shutdown,
.features = CLOCK_EVT_FEAT_ONESHOT | .features = CLOCK_EVT_FEAT_ONESHOT |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment