VirtualBox

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


Ignore:
Timestamp:
Jun 16, 2021 8:08:53 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145201
Message:

DevIchAc97: Todo. bugref:9890

File:
1 edited

Legend:

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

    r89748 r89750  
    26592659                            && (pRegs->sr & AC97_SR_DCH))
    26602660                        {
    2661 #ifdef IN_RING3 /** @todo r=bird: What kind of unexplained non-sense is this ifdef?!? */
    26622661                            pRegs->sr &= ~(AC97_SR_DCH | AC97_SR_CELV);
    26632662                            pRegs->civ = pRegs->piv;
    26642663                            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. */
    26682677                        }
    26692678                        pRegs->lvi = u32 % AC97_MAX_BDLE;
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