Commit 8d6f0c82 authored by Andreas Herrmann's avatar Andreas Herrmann Committed by Ingo Molnar

x86: hpet: provide separate functions to stop and start the counter

By splitting up existing hpet_start_counter function.
Signed-off-by: default avatarAndreas Herrmann <andreas.herrmann3@amd.com>
Cc: Mark Hounschell <markh@compro.net>
Cc: Borislav Petkov <borislav.petkov@amd.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent b98103a5
...@@ -231,27 +231,37 @@ static struct clock_event_device hpet_clockevent = { ...@@ -231,27 +231,37 @@ static struct clock_event_device hpet_clockevent = {
.rating = 50, .rating = 50,
}; };
static void hpet_start_counter(void) static void hpet_stop_counter(void)
{ {
unsigned long cfg = hpet_readl(HPET_CFG); unsigned long cfg = hpet_readl(HPET_CFG);
cfg &= ~HPET_CFG_ENABLE; cfg &= ~HPET_CFG_ENABLE;
hpet_writel(cfg, HPET_CFG); hpet_writel(cfg, HPET_CFG);
hpet_writel(0, HPET_COUNTER); hpet_writel(0, HPET_COUNTER);
hpet_writel(0, HPET_COUNTER + 4); hpet_writel(0, HPET_COUNTER + 4);
}
static void hpet_start_counter(void)
{
unsigned long cfg = hpet_readl(HPET_CFG);
cfg |= HPET_CFG_ENABLE; cfg |= HPET_CFG_ENABLE;
hpet_writel(cfg, HPET_CFG); hpet_writel(cfg, HPET_CFG);
} }
static void hpet_restart_counter(void)
{
hpet_stop_counter();
hpet_start_counter();
}
static void hpet_resume_device(void) static void hpet_resume_device(void)
{ {
force_hpet_resume(); force_hpet_resume();
} }
static void hpet_restart_counter(void) static void hpet_resume_counter(void)
{ {
hpet_resume_device(); hpet_resume_device();
hpet_start_counter(); hpet_restart_counter();
} }
static void hpet_enable_legacy_int(void) static void hpet_enable_legacy_int(void)
...@@ -738,7 +748,7 @@ static struct clocksource clocksource_hpet = { ...@@ -738,7 +748,7 @@ static struct clocksource clocksource_hpet = {
.mask = HPET_MASK, .mask = HPET_MASK,
.shift = HPET_SHIFT, .shift = HPET_SHIFT,
.flags = CLOCK_SOURCE_IS_CONTINUOUS, .flags = CLOCK_SOURCE_IS_CONTINUOUS,
.resume = hpet_restart_counter, .resume = hpet_resume_counter,
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_64
.vread = vread_hpet, .vread = vread_hpet,
#endif #endif
...@@ -750,7 +760,7 @@ static int hpet_clocksource_register(void) ...@@ -750,7 +760,7 @@ static int hpet_clocksource_register(void)
cycle_t t1; cycle_t t1;
/* Start the counter */ /* Start the counter */
hpet_start_counter(); hpet_restart_counter();
/* Verify whether hpet counter works */ /* Verify whether hpet counter works */
t1 = read_hpet(); t1 = read_hpet();
......
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