VirtualBox

Changeset 88186 in vbox for trunk/src/VBox/Devices/Audio


Ignore:
Timestamp:
Mar 18, 2021 10:26:14 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
143342
Message:

DevHDA: Added WALCLKA at 2030h (see 3.3.44). Turned two if statements around for better mojo. bugref:9890

File:
1 edited

Legend:

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

    r88170 r88186  
    463463const HDAREGALIAS g_aHdaRegAliases[] =
    464464{
     465    { 0x2030, HDA_REG_WALCLK  },
    465466    { 0x2084, HDA_REG_SD0LPIB },
    466467    { 0x20a4, HDA_REG_SD1LPIB },
     
    31353136    DEVHDA_LOCK_RETURN(pDevIns, pThis, VINF_IOM_R3_MMIO_WRITE);
    31363137
    3137     if (!(HDA_REG(pThis, GCTL) & HDA_GCTL_CRST) && idxRegDsc != HDA_REG_GCTL)
     3138    if (   (HDA_REG(pThis, GCTL) & HDA_GCTL_CRST)
     3139        || idxRegDsc == HDA_REG_GCTL)
     3140    { /* likely */ }
     3141    else
    31383142    {
    31393143        Log(("hdaWriteReg: Warning: Access to %s is blocked while controller is in reset mode\n", g_aHdaRegMap[idxRegDsc].abbrev));
     
    31533157    if (idxRegDsc >= HDA_NUM_GENERAL_REGS)
    31543158    {
    3155         const uint32_t uSDCTL = HDA_STREAM_REG(pThis, CTL, HDA_SD_NUM_FROM_REG(pThis, CTL, idxRegDsc));
    3156 
    31573159        /*
    31583160         * Some OSes (like Win 10 AU) violate the spec by writing stuff to registers which are not supposed to be be touched
    31593161         * while SDCTL's RUN bit is set. So just ignore those values.
    31603162         */
    3161 
    3162         /* Is the RUN bit currently set? */
    3163         if (   RT_BOOL(uSDCTL & HDA_SDCTL_RUN)
    3164             /* Are writes to the register denied if RUN bit is set? */
    3165             && !(g_aHdaRegMap[idxRegDsc].fFlags & HDA_RD_F_SD_WRITE_RUN))
     3163        const uint32_t uSDCTL = HDA_STREAM_REG(pThis, CTL, HDA_SD_NUM_FROM_REG(pThis, CTL, idxRegDsc));
     3164        if (   !(uSDCTL & HDA_SDCTL_RUN)
     3165            || (g_aHdaRegMap[idxRegDsc].fFlags & HDA_RD_F_SD_WRITE_RUN))
     3166        { /* likely */ }
     3167        else
    31663168        {
    31673169            Log(("hdaWriteReg: Warning: Access to %s is blocked! %R[sdctl]\n", g_aHdaRegMap[idxRegDsc].abbrev, uSDCTL));
Note: See TracChangeset for help on using the changeset viewer.

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