* Zwane Mwaikambo <[EMAIL PROTECTED]> [050121 10:27]: > On Fri, 21 Jan 2005, Tony Lindgren wrote: > > > > This doesn't seem to cover the local APIC timer, what do you do about the > > > 1kHz tick which it's programmed to do? > > > > Sorry for the delay in replaying. Thanks for pointing that out, I > > don't know yet what to do with the local APIC timer. Have to look at > > more. > > Pavel does your test system have a Local APIC? If so that may also explain > why you didn't see a difference.
Yeah, that could explain why sleep mode seems to wake up too early. > Tony, something like the following for oneshot should work, untested of > course. Perhaps you could use that for the wakeup interrupt instead? > > void setup_oneshot_apic_timer(unsigned int count) > { > unsigned int lvtt, tmp_value; > unsigned long flags; > > count *= calibration_result; > local_irq_save(flags); > lvtt = ~APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR; > apic_write_around(APIC_LVTT, lvtt); > tmp_value = apic_read(APIC_TDCR); > apic_write_around(APIC_TDCR, (tmp_value > & ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE)) > | APIC_TDR_DIV_16); > > apic_write_around(APIC_TMICT, count/APIC_DIVISOR); > local_irq_restore(flags); > } > Thanks, I'll try it out! As George also pointed out, we should use apic timer if available. Else we can fall back on use PIT. Tony - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/