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

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

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
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -231,27 +231,37 @@ static struct clock_event_device hpet_clockevent = {
	.rating		= 50,
};

static void hpet_start_counter(void)
static void hpet_stop_counter(void)
{
	unsigned long cfg = hpet_readl(HPET_CFG);

	cfg &= ~HPET_CFG_ENABLE;
	hpet_writel(cfg, HPET_CFG);
	hpet_writel(0, HPET_COUNTER);
	hpet_writel(0, HPET_COUNTER + 4);
}

static void hpet_start_counter(void)
{
	unsigned long cfg = hpet_readl(HPET_CFG);
	cfg |= HPET_CFG_ENABLE;
	hpet_writel(cfg, HPET_CFG);
}

static void hpet_restart_counter(void)
{
	hpet_stop_counter();
	hpet_start_counter();
}

static void hpet_resume_device(void)
{
	force_hpet_resume();
}

static void hpet_restart_counter(void)
static void hpet_resume_counter(void)
{
	hpet_resume_device();
	hpet_start_counter();
	hpet_restart_counter();
}

static void hpet_enable_legacy_int(void)
@@ -738,7 +748,7 @@ static struct clocksource clocksource_hpet = {
	.mask		= HPET_MASK,
	.shift		= HPET_SHIFT,
	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
	.resume		= hpet_restart_counter,
	.resume		= hpet_resume_counter,
#ifdef CONFIG_X86_64
	.vread		= vread_hpet,
#endif
@@ -750,7 +760,7 @@ static int hpet_clocksource_register(void)
	cycle_t t1;

	/* Start the counter */
	hpet_start_counter();
	hpet_restart_counter();

	/* Verify whether hpet counter works */
	t1 = read_hpet();