VirtualBox

Changeset 37185 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 23, 2011 3:06:44 PM (14 years ago)
Author:
vboxsync
Message:

Audio/HDA: fix of (xTracker/5704) for trunk.

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

Legend:

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

    r36692 r37185  
    3535{
    3636    uint8_t id; /* 7 - bit format */
    37     const char    *name;
    3837    /* RPM 5.3.6 */
    3938    uint32_t au32F00_param[CODECNODE_F0_PARAM_LENGTH];
     
    274273        /* Root Node*/
    275274        case 0:
    276             pNode->root.node.name = "Root";
    277275            pNode->node.au32F00_param[2] = CODEC_MAKE_F00_02(0x1, 0x0, 0x34, 0x1); /* rev id */
    278276            break;
    279277        case 1:
    280             pNode->afg.node.name = "AFG";
    281278            pNode->node.au32F00_param[8] = CODEC_MAKE_F00_08(1, 0xd, 0xd);
    282279            pNode->node.au32F00_param[0xC] =   CODEC_MAKE_F00_0C(0x17)
     
    296293            break;
    297294        case 2:
    298             pNode->dac.node.name = "DAC0";
    299             goto dac_init;
    300295        case 3:
    301             pNode->dac.node.name = "DAC1";
    302             goto dac_init;
    303296        case 4:
    304             pNode->dac.node.name = "DAC2";
    305             goto dac_init;
    306297        case 5:
    307             pNode->dac.node.name = "DAC3";
    308         dac_init:
    309298            memset(pNode->dac.B_params, 0, AMPLIFIER_SIZE);
    310299            pNode->dac.u32A_param = CODEC_MAKE_A(0, 1, CODEC_A_MULT_1X, CODEC_A_DIV_1X, CODEC_A_16_BIT, 1);//RT_BIT(14)|(0x1 << 4)|0x1; /* 441000Hz/16bit/2ch */
     
    322311        break;
    323312        case 6:
    324             pNode->adc.node.name = "ADC0";
    325313            pNode->node.au32F02_param[0] = 0x17;
    326314            goto adc_init;
    327315        case 7:
    328             pNode->adc.node.name = "ADC1";
    329316            pNode->node.au32F02_param[0] = 0x18;
    330317        adc_init:
     
    341328            break;
    342329        case 8:
    343             pNode->spdifout.node.name = "SPDIFOut";
    344330            pNode->spdifout.u32A_param = CODEC_MAKE_A(0, 1, CODEC_A_MULT_1X, CODEC_A_DIV_1X, CODEC_A_16_BIT, 1);//(1<<14)|(0x1<<4) | 0x1;
    345331            pNode->spdifout.node.au32F00_param[9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_AUDIO_OUTPUT, 0x4, 0)
     
    353339        break;
    354340        case 9:
    355             pNode->node.name = "Reserved_0";
    356341            pNode->spdifin.u32A_param = CODEC_MAKE_A(0, 1, CODEC_A_MULT_1X, CODEC_A_DIV_1X, CODEC_A_16_BIT, 1);//(0x1<<4) | 0x1;
    357342            pNode->spdifin.node.au32F00_param[9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_AUDIO_INPUT, 0x4, 0)
     
    368353        break;
    369354        case 0xA:
    370             pNode->node.name = "PortA";
    371355            pNode->node.au32F00_param[0xC] =   CODEC_MAKE_F00_0C(0x17)
    372356                                             | CODEC_F00_0C_CAP_INPUT
     
    390374            goto port_init;
    391375        case 0xB:
    392             pNode->node.name = "PortB";
    393376            pNode->node.au32F00_param[0xC] =   CODEC_MAKE_F00_0C(0x17)
    394377                                             | CODEC_F00_0C_CAP_INPUT
     
    409392            goto port_init;
    410393        case 0xC:
    411             pNode->node.name = "PortC";
    412394            pNode->node.au32F02_param[0] = 0x3;
    413395            pNode->node.au32F00_param[0xC] =   CODEC_MAKE_F00_0C(0x17)
     
    427409            goto port_init;
    428410        case 0xD:
    429             pNode->node.name = "PortD";
    430411            pNode->node.au32F00_param[0xC] =   CODEC_MAKE_F00_0C(0x17)
    431412                                             | CODEC_F00_0C_CAP_INPUT
     
    453434        break;
    454435        case 0xE:
    455             pNode->node.name = "PortE";
    456436            pNode->node.au32F00_param[9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_PIN_COMPLEX, 0x0, 0)
    457437                                           | CODEC_F00_09_CAP_UNSOL
     
    472452            break;
    473453        case 0xF:
    474             pNode->node.name = "PortF";
    475454            pNode->node.au32F00_param[9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_PIN_COMPLEX, 0x0, 0x0)
    476455                                           | CODEC_F00_09_CAP_CONNECTION_LIST
     
    498477        break;
    499478        case 0x10:
    500             pNode->node.name = "DigOut_0";
    501479            pNode->node.au32F00_param[9] = CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_PIN_COMPLEX, 0x0, 0x0)
    502480                                           | CODEC_F00_09_CAP_DIGITAL
     
    515493        break;
    516494        case 0x11:
    517             pNode->node.name = "DigIn_0";
    518495            pNode->node.au32F00_param[9] = (4 << 20)|(3<<16)|RT_BIT(10)|RT_BIT(9)|RT_BIT(7)|RT_BIT(0);
    519496            pNode->node.au32F00_param[0xC] =   CODEC_F00_0C_CAP_EAPD
     
    534511        break;
    535512        case 0x12:
    536             pNode->node.name = "ADCMux_0";
    537513            pNode->adcmux.u32F01_param = 0;
    538514            goto adcmux_init;
    539515        case 0x13:
    540             pNode->node.name = "ADCMux_1";
    541516            pNode->adcmux.u32F01_param = 1;
    542517            adcmux_init:
     
    554529        break;
    555530        case 0x14:
    556             pNode->node.name = "PCBEEP";
    557531            pNode->node.au32F00_param[9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_BEEP_GEN, 0, 0)
    558532                                           | CODEC_F00_09_CAP_AMP_FMT_OVERRIDE
     
    563537        break;
    564538        case 0x15:
    565             pNode->node.name = "CD";
    566539            pNode->node.au32F00_param[0x9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_PIN_COMPLEX, 0, 0)
    567540                                             | CODEC_F00_09_CAP_LSB;//(4 << 20)|RT_BIT(0);
     
    576549        break;
    577550        case 0x16:
    578             pNode->node.name = "VolumeKnob";
    579551            pNode->node.au32F00_param[0x9] = CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_VOLUME_KNOB, 0x0, 0x0);//(0x6 << 20);
    580552            pNode->node.au32F00_param[0x13] = RT_BIT(7)| 0x7F;
     
    585557        break;
    586558        case 0x17:
    587             pNode->node.name = "ADC0Vol";
    588559            pNode->node.au32F02_param[0] = 0x12;
    589560            goto adcvol_init;
    590561        case 0x18:
    591             pNode->node.name = "ADC1Vol";
    592562            pNode->node.au32F02_param[0] = 0x13;
    593563        adcvol_init:
     
    605575            break;
    606576        case 0x19:
    607             pNode->node.name = "Reserved_1";
    608577            pNode->node.au32F00_param[0x9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_VENDOR_DEFINED, 0x3, 0)
    609578                                             | CODEC_F00_09_CAP_DIGITAL
     
    611580            break;
    612581        case 0x1A:
    613             pNode->node.name = "Reserved_2";
    614582            pNode->node.au32F00_param[0x9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_AUDIO_OUTPUT, 0x3, 0)
    615583                                             | CODEC_F00_09_CAP_DIGITAL
     
    617585            break;
    618586        case 0x1B:
    619             pNode->node.name = "Reserved_3";
    620587            pNode->node.au32F00_param[0x9] =   CODEC_MAKE_F00_09(CODEC_F00_09_TYPE_PIN_COMPLEX, 0, 0)
    621588                                             | CODEC_F00_09_CAP_DIGITAL
     
    18701837int codecLoadState(CODECState *pCodecState, PSSMHANDLE pSSMHandle)
    18711838{
    1872     SSMR3GetMem (pSSMHandle, pCodecState->pNodes, sizeof(CODECNODE) * pCodecState->cTotalNodes);
     1839    int rc = SSMR3GetMem (pSSMHandle, pCodecState->pNodes, sizeof(CODECNODE) * pCodecState->cTotalNodes);
    18731840    if (codecIsDacNode(pCodecState, pCodecState->u8DacLineOut))
    18741841        codecToAudVolume(&pCodecState->pNodes[pCodecState->u8DacLineOut].dac.B_params, AUD_MIXER_VOLUME);
     
    18761843        codecToAudVolume(&pCodecState->pNodes[pCodecState->u8DacLineOut].spdifout.B_params, AUD_MIXER_VOLUME);
    18771844    codecToAudVolume(&pCodecState->pNodes[pCodecState->u8AdcVolsLineIn].adcvol.B_params, AUD_MIXER_LINE_IN);
    1878     return VINF_SUCCESS;
    1879 }
     1845    return rc;
     1846}
  • trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp

    r36691 r37185  
    5353#endif
    5454
    55 #define HDA_SSM_VERSION 1
     55#define HDA_SSM_VERSION 2
    5656PDMBOTHCBDECL(int) hdaMMIORead(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void *pv, unsigned cb);
    5757PDMBOTHCBDECL(int) hdaMMIOWrite(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void *pv, unsigned cb);
     
    19961996    PCIINTELHDLinkState *pThis = PDMINS_2_DATA(pDevIns, PCIINTELHDLinkState *);
    19971997    /* Load Codec nodes states */
    1998     AssertMsgReturn (uVersion == HDA_SSM_VERSION, ("%d\n", uVersion), VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION);
     1998    if (uVersion < HDA_SSM_VERSION)
     1999        return VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION;
    19992000    Assert (uPass == SSM_PASS_FINAL); NOREF(uPass);
    20002001
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