VirtualBox

Changeset 64849 in vbox for trunk


Ignore:
Timestamp:
Dec 13, 2016 2:41:04 PM (8 years ago)
Author:
vboxsync
Message:

Audio/DevHDA.cpp: Make sure to lower interrupt line if INTCTL / GIE is cleared.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DevHDA.cpp

    r64822 r64849  
    208208#define HDA_INTCTL_S7_SHIFT         7
    209209#define INTCTL_SX(pThis, X)         (HDA_REG_FLAG_VALUE((pThis), INTCTL, S##X))
     210#define HDA_INTCTL_GIE_MASK         RT_BIT(31) /* Global Interrupt Enable (3.3.14). */
    210211
    211212#define HDA_REG_INTSTS              12 /* 0x24 */
     
    21762177    RT_NOREF(iReg);
    21772178
     2179    int rc;
     2180
    21782181    HDA_REG(pThis, INTCTL) = u32Value;
    21792182
    2180     return hdaProcessInterrupt(pThis);
     2183    /* Global Interrupt Enable (GIE) set? */
     2184    if (u32Value & HDA_INTCTL_GIE_MASK)
     2185    {
     2186        rc = hdaProcessInterrupt(pThis);
     2187    }
     2188    else
     2189    {
     2190        /** @todo Clear INTSTS's individual stream status bits as well? */
     2191
     2192        /* Make sure to lower interrupt line, as Global Interrupt Enable (GIE) is disabled. */
     2193        PDMDevHlpPCISetIrq(pThis->CTX_SUFF(pDevIns), 0, 0 /* iLevel */);
     2194
     2195        rc = VINF_SUCCESS;
     2196    }
     2197
     2198    return rc;
    21812199}
    21822200
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