VirtualBox

Changeset 34691 in vbox for trunk/src


Ignore:
Timestamp:
Dec 3, 2010 12:43:16 PM (14 years ago)
Author:
vboxsync
Message:

PIT: Fixed mode 3 timer interrupts (no longer doubled IRQ0 frequency).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/DevPit-i8254.cpp

    r33540 r34691  
    425425        return;
    426426    expire_time = pit_get_next_transition_time(s, current_time);
    427     irq_level = pit_get_out1(s, current_time);
    428 
    429     /* We just flip-flop the irq level to save that extra timer call, which isn't generally required (we haven't served it for months). */
    430     pDevIns = s->CTX_SUFF(pPit)->pDevIns;
     427    irq_level = pit_get_out1(s, current_time) ? PDM_IRQ_LEVEL_HIGH : PDM_IRQ_LEVEL_LOW;
    431428
    432429    /* If PIT disabled by HPET - just disconnect ticks from interrupt controllers, and not modify
     
    436433    if (!s->pPitR3->fDisabledByHpet)
    437434    {
    438         PDMDevHlpISASetIrq(pDevIns, s->irq, irq_level);
    439         if (irq_level)
    440             PDMDevHlpISASetIrq(pDevIns, s->irq, 0);
     435        pDevIns = s->CTX_SUFF(pPit)->pDevIns;
     436
     437        if (s->mode == 2)
     438        {
     439            /* We just flip-flop the irq level to save that extra timer call, which isn't generally required (we haven't served it for years). */
     440            PDMDevHlpISASetIrq(pDevIns, s->irq, PDM_IRQ_LEVEL_FLIP_FLOP);
     441        } else
     442            PDMDevHlpISASetIrq(pDevIns, s->irq, irq_level);
    441443    }
    442444
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette