Changeset 88186 in vbox for trunk/src/VBox/Devices/Audio
- Timestamp:
- Mar 18, 2021 10:26:14 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 143342
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevHDA.cpp
r88170 r88186 463 463 const HDAREGALIAS g_aHdaRegAliases[] = 464 464 { 465 { 0x2030, HDA_REG_WALCLK }, 465 466 { 0x2084, HDA_REG_SD0LPIB }, 466 467 { 0x20a4, HDA_REG_SD1LPIB }, … … 3135 3136 DEVHDA_LOCK_RETURN(pDevIns, pThis, VINF_IOM_R3_MMIO_WRITE); 3136 3137 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 3138 3142 { 3139 3143 Log(("hdaWriteReg: Warning: Access to %s is blocked while controller is in reset mode\n", g_aHdaRegMap[idxRegDsc].abbrev)); … … 3153 3157 if (idxRegDsc >= HDA_NUM_GENERAL_REGS) 3154 3158 { 3155 const uint32_t uSDCTL = HDA_STREAM_REG(pThis, CTL, HDA_SD_NUM_FROM_REG(pThis, CTL, idxRegDsc));3156 3157 3159 /* 3158 3160 * Some OSes (like Win 10 AU) violate the spec by writing stuff to registers which are not supposed to be be touched 3159 3161 * while SDCTL's RUN bit is set. So just ignore those values. 3160 3162 */ 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 3166 3168 { 3167 3169 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.