ACPI/hpet: prevent boot hang when hpet=force used on ICH-4M
authorLen Brown <len.brown@intel.com>
Thu, 23 Apr 2009 22:59:43 +0000 (18:59 -0400)
committerLen Brown <len.brown@intel.com>
Fri, 24 Apr 2009 01:51:51 +0000 (21:51 -0400)
commitf461ddea0af8b98e2b7940eba9c693b0ee44d64a
tree77a1b7eb4406ac1e96aaddb8ded9ea517b5a869a
parent091069740304c979f957ceacec39c461d0192158
ACPI/hpet: prevent boot hang when hpet=force used on ICH-4M

Linux tells ICH4 users that they can (manually) invoke
"hpet=force" to enable the undocumented ICH-4M HPET.
The HPET becomes available for both clocksource and clockevents.

But as of ff69f2bba67bd45514923aaedbf40fe351787c59
(acpi: fix of pmtimer overflow that make Cx states time incorrect)
the HPET may be used via clocksource for idle accounting, and
hpet=force on an ICH4 box hangs boot.

It turns out that touching the MMIO HPET withing
the ARB_DIS part of C3 will hang the hardware.

The fix is to simply move the timer access outside
the ARB_DIS region.  This is a no-op on modern hardware
because ARB_DIS is no longer used.

http://bugzilla.kernel.org/show_bug.cgi?id=13087

Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/processor_idle.c