x86: hpet: stop HPET_COUNTER when programming periodic mode
authorAndreas Herrmann <andreas.herrmann3@amd.com>
Fri, 20 Feb 2009 23:16:35 +0000 (00:16 +0100)
committerIngo Molnar <mingo@elte.hu>
Sun, 22 Feb 2009 17:01:18 +0000 (18:01 +0100)
commitc23e253e67c9d8a91a0ffa33c1f571a17f0a2403
tree5e1253549e6df59b568341e4b1da6b93183e73b0
parent8d6f0c8214928f7c5083dd54ecb69c5d615b516e
x86: hpet: stop HPET_COUNTER when programming periodic mode

Impact: fix system hang on some systems operating with HZ_1000

On a system that stalled with HZ_1000, the first value written to
T0_CMP (when the main counter was not stopped) did not trigger an
interrupt. Instead after the main counter wrapped around (after
several minutes) an interrupt was triggered and afterwards the
periodic interrupt took effect.

This can be fixed by implementing HPET spec recommendation for
programming the periodic mode (i.e. stopping the main counter).

Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Cc: Mark Hounschell <markh@compro.net>
Cc: Borislav Petkov <borislav.petkov@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/hpet.c