VirtualBox

Changeset 37482 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Jun 16, 2011 4:09:27 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
72300
Message:

Audio/HDA: SSMR3{Get,Put}Struct in HDA device implementation.

Location:
trunk/src/VBox/Devices/Audio
Files:
3 edited

Legend:

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

    r37191 r37482  
    18681868{
    18691869    int rc;
    1870     if (uVersion == 1)
     1870    if (uVersion == HDA_SSM_VERSION_1)
    18711871    {
    18721872#if RT_ARCH_X86
  • trunk/src/VBox/Devices/Audio/DevCodec.h

    r37190 r37482  
    530530int codecOpenVoice(CODECState *pCodecState, ENMSOUNDSOURCE enmSoundSource, audsettings_t *pAudioSettings);
    531531
    532 #define HDA_SSM_VERSION 2
     532#define HDA_SSM_VERSION 3
     533#define HDA_SSM_VERSION_1 1
     534#define HDA_SSM_VERSION_2 2
    533535
    534536# ifdef VBOX_WITH_HDA_CODEC_EMU
  • trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp

    r37190 r37482  
    418418    uint8_t     au8HdaBuffer[HDA_SDONFIFO_256B + 1];
    419419} HDABDLEDESC, *PHDABDLEDESC;
     420
     421static SSMFIELD const g_aHdaBDLEDescFields[] =
     422{
     423    SSMFIELD_ENTRY(     HDABDLEDESC, u64BdleCviAddr),
     424    SSMFIELD_ENTRY(     HDABDLEDESC, u32BdleMaxCvi),
     425    SSMFIELD_ENTRY(     HDABDLEDESC, u32BdleCvi),
     426    SSMFIELD_ENTRY(     HDABDLEDESC, u32BdleCviLen),
     427    SSMFIELD_ENTRY(     HDABDLEDESC, u32BdleCviPos),
     428    SSMFIELD_ENTRY(     HDABDLEDESC, fBdleCviIoc),
     429    SSMFIELD_ENTRY(     HDABDLEDESC, cbUnderFifoW),
     430    SSMFIELD_ENTRY(     HDABDLEDESC, au8HdaBuffer),
     431    SSMFIELD_ENTRY_TERM()
     432};
    420433
    421434typedef struct HDASTREAMTRANSFERDESC
     
    19751988    SSMR3PutMem (pSSMHandle, pThis->hda.au32Regs, sizeof (pThis->hda.au32Regs));
    19761989    /* Save HDA dma counters */
    1977     SSMR3PutMem (pSSMHandle, &pThis->hda.stOutBdle, sizeof (HDABDLEDESC));
    1978     SSMR3PutMem (pSSMHandle, &pThis->hda.stMicBdle, sizeof (HDABDLEDESC));
    1979     SSMR3PutMem (pSSMHandle, &pThis->hda.stInBdle, sizeof (HDABDLEDESC));
     1990    SSMR3PutStruct (pSSMHandle, &pThis->hda.stOutBdle, g_aHdaBDLEDescFields);
     1991    SSMR3PutStruct (pSSMHandle, &pThis->hda.stMicBdle, g_aHdaBDLEDescFields);
     1992    SSMR3PutStruct (pSSMHandle, &pThis->hda.stInBdle, g_aHdaBDLEDescFields);
    19801993    return VINF_SUCCESS;
    19811994}
     
    19952008    PCIINTELHDLinkState *pThis = PDMINS_2_DATA(pDevIns, PCIINTELHDLinkState *);
    19962009    /* Load Codec nodes states */
    1997     if (uVersion > HDA_SSM_VERSION)
    1998         return VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION;
    19992010    Assert (uPass == SSM_PASS_FINAL); NOREF(uPass);
    20002011
     
    20032014    SSMR3GetMem (pSSMHandle, pThis->hda.au32Regs, sizeof (pThis->hda.au32Regs));
    20042015    /* Load HDA dma counters */
    2005     SSMR3GetMem (pSSMHandle, &pThis->hda.stOutBdle, sizeof (HDABDLEDESC));
    2006     SSMR3GetMem (pSSMHandle, &pThis->hda.stMicBdle, sizeof (HDABDLEDESC));
    2007     SSMR3GetMem (pSSMHandle, &pThis->hda.stInBdle, sizeof (HDABDLEDESC));
     2016    if (   uVersion == HDA_SSM_VERSION_1
     2017        || uVersion == HDA_SSM_VERSION_2)
     2018    {
     2019        SSMR3GetMem (pSSMHandle, &pThis->hda.stOutBdle, sizeof (HDABDLEDESC));
     2020        SSMR3GetMem (pSSMHandle, &pThis->hda.stMicBdle, sizeof (HDABDLEDESC));
     2021        SSMR3GetMem (pSSMHandle, &pThis->hda.stInBdle, sizeof (HDABDLEDESC));
     2022    }
     2023    else
     2024    {
     2025        SSMR3GetStruct (pSSMHandle, &pThis->hda.stOutBdle, g_aHdaBDLEDescFields);
     2026        SSMR3GetStruct (pSSMHandle, &pThis->hda.stMicBdle, g_aHdaBDLEDescFields);
     2027        SSMR3GetStruct (pSSMHandle, &pThis->hda.stInBdle, g_aHdaBDLEDescFields);
     2028    }
     2029
    20082030
    20092031    AUD_set_active_in(pThis->hda.Codec.SwVoiceIn, SDCTL(&pThis->hda, 0) & HDA_REG_FIELD_FLAG_MASK(SDCTL, RUN));
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