I have developed a simple HPET driver that supports both level- and edge-triggered interrupt modes.
I have tested periodicinterrupton three computers:
E8300 + P35 + ICH9
E4500 + 82801(?) + ICH7
Laptop Pentium M
Level-triggered interrupt works fine on all computers. Edge-triggered interrupt work fine on E8300 only. Other computers miss interrupts frequently. Pentium M often misses 1 and rarely 2 interrupts; E4500 often misses 20-30 interrupts in a series, and sometimes up to 50!
Simple ideas, like other process disabling interrupts, were already checked and rejected.
Do I miss something?Are there known chipset issues?
Here is skeleton of my driver:
__declspec(naked) void HpetHandler( void )
if (Level_Trigger) *InterruptStatusRegister= INTERRUPT_TIMER1;