* 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/

Reply via email to