Changeset 89750 in vbox for trunk/src/VBox/Devices/Audio
- Timestamp:
- Jun 16, 2021 8:08:53 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 145201
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevIchAc97.cpp
r89748 r89750 2659 2659 && (pRegs->sr & AC97_SR_DCH)) 2660 2660 { 2661 #ifdef IN_RING3 /** @todo r=bird: What kind of unexplained non-sense is this ifdef?!? */2662 2661 pRegs->sr &= ~(AC97_SR_DCH | AC97_SR_CELV); 2663 2662 pRegs->civ = pRegs->piv; 2664 2663 pRegs->piv = (pRegs->piv + 1) % AC97_MAX_BDLE; 2665 #else 2666 rc = VINF_IOM_R3_IOPORT_WRITE; 2667 #endif 2664 /** @todo r=bird: there used to be a ichac97StreamFetchBDLE here, but it was 2665 * removed in r128222 without any helpful clue in the commit message 2666 * ("Audio/AC97: Added more code for transfer calculation for helping with A/V 2667 * synchronization"). There wasn't and isn't any clue to the logic here in the 2668 * source code either, of course, so at least there is some consistency. :-) 2669 * 2670 * The old code with the fetch was probably correct, though, as we're now 2671 * skipping one BDLE (CIV is incremented here, but since PICB is still zero 2672 * we'll increment CIV again in the DMA transfer loop - the way I read it). 2673 * 2674 * I found no special handling of DCH in the linux code, but that doesn't prove 2675 * anything as they might just expect the device never to get into this underrun 2676 * situation... Ditto windows 8.1 AC'97 sample driver. */ 2668 2677 } 2669 2678 pRegs->lvi = u32 % AC97_MAX_BDLE;
Note:
See TracChangeset
for help on using the changeset viewer.