VirtualBox

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


Ignore:
Timestamp:
Nov 29, 2010 12:47:39 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
68234
Message:

Audio/HDA: temporary disabled(FIFOW), hdaTransfer doesn't ignore fStop returned from Read/Write handlers, reorganization of hdaReset.

File:
1 edited

Legend:

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

    r34443 r34460  
    651651static uint32_t inline hdaFifoWToSz(INTELHDLinkState *pState, PHDASTREAMTRANSFERDESC pStreamDesc)
    652652{
     653#if 0
    653654    switch(HDA_STREAM_REG2(pState, FIFOW, pStreamDesc->u8Strm))
    654655    {
     
    659660            AssertMsgFailed(("hda: unsupported value (%x) in SDFIFOW(,%d)\n", HDA_REG_IND(pState, pStreamDesc->u8Strm), pStreamDesc->u8Strm));
    660661    }
     662#endif
    661663    return 0;
    662664}
     
    17011703        /* Process end of buffer condition. */
    17021704        hdaStreamCounterUpdate(pState, pBdle, &stStreamDesc, nBytes);
    1703         fStop = !hdaDoNextTransferCycle(pState, pBdle, &stStreamDesc);
     1705        fStop = !fStop ? !hdaDoNextTransferCycle(pState, pBdle, &stStreamDesc) : fStop;
    17041706    }
    17051707}
     
    19101912 *          make sense to me so we'll do it.
    19111913 */
    1912 static DECLCALLBACK(void)  hdaReset (PPDMDEVINS pDevIns)
     1914static DECLCALLBACK(void)  hdaReset(PPDMDEVINS pDevIns)
    19131915{
    19141916    PCIINTELHDLinkState *pThis = PDMINS_2_DATA(pDevIns, PCIINTELHDLinkState *);
     
    19381940        pThis->hda.pu64RirbBuf = (uint64_t *)RTMemAllocZ(pThis->hda.cbRirbBuf);
    19391941
     1942#if 0
    19401943    /* According to ICH6 datasheet, 0x40000 is default value for stream descriptor register 23:20
    19411944     * bits are reserved for stream number 18.2.33 */
     
    19621965    SDFIFOW(&pThis->hda, 0) = HDA_SDFIFOW_8B;
    19631966    SDFIFOW(&pThis->hda, 4) = HDA_SDFIFOW_32B;
     1967#endif
     1968    HDABDLEDESC stEmptyBdle;
     1969    for(uint8_t u8Strm = 0; u8Strm < 8; ++u8Strm)
     1970    {
     1971        HDASTREAMTRANSFERDESC stStreamDesc;
     1972        PHDABDLEDESC pBdle = NULL;
     1973        if (u8Strm == 0)
     1974            pBdle = &pThis->hda.stInBdle;
     1975        else if(u8Strm == 4)
     1976            pBdle = &pThis->hda.stOutBdle;
     1977        else
     1978        {
     1979            memset(&stEmptyBdle, 0, sizeof(HDABDLEDESC));
     1980            pBdle = &stEmptyBdle;
     1981        }
     1982        hdaInitTransferDescriptor(&pThis->hda, pBdle, u8Strm, &stStreamDesc);
     1983        /* hdaStreamReset prevents changing SRST bit, so we zerro it here forcely. */
     1984        HDA_STREAM_REG2(&pThis->hda, CTL, u8Strm) = 0;
     1985        hdaStreamReset(&pThis->hda, pBdle, &stStreamDesc, u8Strm);
     1986    }
    19641987
    19651988    /* emulateion of codec "wake up" HDA spec (5.5.1 and 6.5)*/
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