Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@xxxxxxxxx> On Thu, 2009-04-23 at 16:18 -0700, Len Brown wrote: > From: Len Brown <len.brown@xxxxxxxxx> > > 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 > > Signed-off-by: Len Brown <len.brown@xxxxxxxxx> > --- > drivers/acpi/processor_idle.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c > index 6fe1214..ea23c64 100644 > --- a/drivers/acpi/processor_idle.c > +++ b/drivers/acpi/processor_idle.c > @@ -955,6 +955,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, > */ > acpi_state_timer_broadcast(pr, cx, 1); > > + kt1 = ktime_get_real(); > /* > * disable bus master > * bm_check implies we need ARB_DIS > @@ -976,10 +977,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, > ACPI_FLUSH_CPU_CACHE(); > } > > - kt1 = ktime_get_real(); > acpi_idle_do_entry(cx); > - kt2 = ktime_get_real(); > - idle_time = ktime_to_us(ktime_sub(kt2, kt1)); > > /* Re-enable bus master arbitration */ > if (pr->flags.bm_check && pr->flags.bm_control) { > @@ -988,6 +986,8 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, > c3_cpu_count--; > spin_unlock(&c3_lock); > } > + kt2 = ktime_get_real(); > + idle_time = ktime_to_us(ktime_sub(kt2, kt1)); > > #if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86) > /* TSC could halt in idle, so notify users */ -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html