VirtualBox

Changeset 36692 in vbox


Ignore:
Timestamp:
Apr 18, 2011 3:06:05 AM (13 years ago)
Author:
vboxsync
Message:

Audio/HDA: no ALC 885.

File:
1 edited

Legend:

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

    r36691 r36692  
    638638}
    639639
    640 /* ALC885 */
    641 const static uint8_t au8Alc885Ports[] = { 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0};
    642 const static uint8_t au8Alc885Dacs[] = { 0x2, 0x3, 0x4, 0x5, 0x25, 0};
    643 const static uint8_t au8Alc885Adcs[] = { 0x7, 0x8, 0x9, 0};
    644 const static uint8_t au8Alc885SpdifOuts[] = { 0x6, 0 };
    645 const static uint8_t au8Alc885SpdifIns[] = { 0xA, 0 };
    646 const static uint8_t au8Alc885DigOutPins[] = { 0x1E, 0 };
    647 const static uint8_t au8Alc885DigInPins[] = { 0x1F, 0 };
    648 const static uint8_t au8Alc885AdcVols[] = { 0xE, 0xF, 0xD, 0xC, 0x26, 0xB, 0};
    649 const static uint8_t au8Alc885AdcMuxs[] = { 0x22, 0x23, 0x24, 0};
    650 const static uint8_t au8Alc885Pcbeeps[] = { 0x1D, 0 };
    651 const static uint8_t au8Alc885Cds[] = { 0x1C, 0 };
    652 const static uint8_t au8Alc885VolKnobs[] = { 0x21, 0 };
    653 const static uint8_t au8Alc885Reserveds[] = { 0x10, 0x11, 0x12, 0x13, 0 };
    654 
    655 
    656 static int alc885ResetNode(struct CODECState *pState, uint8_t nodenum, PCODECNODE pNode);
    657 
    658 static int alc885Construct(CODECState *pState)
    659 {
    660     unconst(pState->cTotalNodes) = 0x27;
    661     pState->u16VendorId = 0x10ec;
    662     pState->u16DeviceId =  0x0885;
    663     pState->u8BSKU = 0x08;
    664     pState->u8AssemblyId = 0x85;
    665     pState->pfnCodecNodeReset = alc885ResetNode;
    666     pState->pNodes = (PCODECNODE)RTMemAllocZ(sizeof(CODECNODE) * pState->cTotalNodes);
    667     pState->fInReset = false;
    668 #define ALC885WIDGET(type) pState->au8##type##s = au8Alc885##type##s
    669     ALC885WIDGET(Port);
    670     ALC885WIDGET(Dac);
    671     ALC885WIDGET(Adc);
    672     ALC885WIDGET(AdcVol);
    673     ALC885WIDGET(AdcMux);
    674     ALC885WIDGET(Pcbeep);
    675     ALC885WIDGET(SpdifIn);
    676     ALC885WIDGET(SpdifOut);
    677     ALC885WIDGET(DigInPin);
    678     ALC885WIDGET(DigOutPin);
    679     ALC885WIDGET(Cd);
    680     ALC885WIDGET(VolKnob);
    681     ALC885WIDGET(Reserved);
    682 #undef ALC885WIDGET
    683     /* @todo: test more */
    684     unconst(pState->u8AdcVolsLineIn) = 0x1a;
    685     unconst(pState->u8DacLineOut) = 0x0d;
    686 
    687     return VINF_SUCCESS;
    688 }
    689 
    690 static int alc885ResetNode(struct CODECState *pState, uint8_t nodenum, PCODECNODE pNode)
    691 {
    692     pNode->node.id = nodenum;
    693     switch (nodenum)
    694     {
    695         case 0: /* Root */
    696             pNode->node.au32F00_param[2] = CODEC_MAKE_F00_02(0x1, 0x0, 0x0, 0x0); /* Realtek 889 (8.1.9)*/
    697             pNode->node.au32F00_param[0xA] = pState->pNodes[1].node.au32F00_param[0xA];
    698 
    699             break;
    700         case 0x1: /* AFG */
    701             pNode->node.au32F00_param[0xB] = CODEC_F00_0B_PCM;
    702             pNode->node.au32F00_param[0x11] = RT_BIT(30)|0x2;
    703             break;
    704         /* DACs */
    705         case 0x2:
    706             pNode->node.name = "DAC-0";
    707             goto dac_init;
    708         case 0x3:
    709             pNode->node.name = "DAC-1";
    710             goto dac_init;
    711         case 0x4:
    712             pNode->node.name = "DAC-2";
    713             goto dac_init;
    714         case 0x5:
    715             pNode->node.name = "DAC-3";
    716             goto dac_init;
    717         case 0x25:
    718             pNode->node.name = "DAC-4";
    719         dac_init:
    720             pNode->node.au32F00_param[0xA] = pState->pNodes[1].node.au32F00_param[0xA];
    721             pNode->node.au32F00_param[0x9] = 0x11;
    722             pNode->node.au32F00_param[0xB] = CODEC_F00_0B_PCM;
    723             pNode->dac.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;
    724             break;
    725         /* SPDIFs */
    726         case 0x6:
    727             pNode->node.name = "SPDIFOUT-0";
    728             pNode->node.au32F00_param[0x9] = 0x211;
    729             pNode->node.au32F00_param[0xB] = 0x1;
    730             pNode->node.au32F00_param[0xA] = pState->pNodes[1].node.au32F00_param[0xA];
    731             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;
    732             break;
    733         case 0xA:
    734             pNode->node.name = "SPDIFIN-0";
    735             pNode->node.au32F00_param[0x9] = 0x100391;
    736             pNode->node.au32F00_param[0xA] = pState->pNodes[1].node.au32F00_param[0xA];
    737             pNode->node.au32F00_param[0xB] = 0x1;
    738             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x1F, 0, 0, 0);
    739             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x1F, 0, 0, 0);
    740             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x1F, 0, 0, 0);
    741             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x1F, 0, 0, 0);
    742             pNode->node.au32F00_param[0xA] = pState->pNodes[1].node.au32F00_param[0xA];
    743             pNode->spdifin.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;
    744             break;
    745         /* VENDOR DEFINE */
    746         case 0x10:
    747             pNode->node.name = "VENDEF-0";
    748             goto vendor_define_init;
    749         case 0x11:
    750             pNode->node.name = "VENDEF-1";
    751             goto vendor_define_init;
    752         case 0x12:
    753             pNode->node.name = "VENDEF-2";
    754             goto vendor_define_init;
    755         case 0x13:
    756             pNode->node.name = "VENDEF-3";
    757             goto vendor_define_init;
    758         case 0x20:
    759             pNode->node.name = "VENDEF-4";
    760         vendor_define_init:
    761             pNode->node.au32F00_param[0x9] = 0xf00000;
    762             break;
    763 
    764         /* DIGPIN */
    765         case 0x1E:
    766             pNode->node.name = "DIGOUT-1";
    767             pNode->node.au32F00_param[0x9] = 0x400300;
    768             pNode->node.au32F00_param[0xE] = 0x1;
    769             pNode->port.u32F1c_param = 0x14be060;
    770             pNode->node.au32F00_param[0xC] = RT_BIT(4);
    771             /* N = 0~3 */
    772             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x6, 0x0, 0x0, 0x0);
    773             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x6, 0x0, 0x0, 0x0);
    774             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x6, 0x0, 0x0, 0x0);
    775             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x6, 0x0, 0x0, 0x0);
    776             break;
    777         case 0x1F:
    778             pNode->node.name = "DIGIN-0";
    779             pNode->node.au32F00_param[9] = 0x400200;
    780             /* N = 0~3 */
    781             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0xA, 0x0, 0x0, 0x0);
    782             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0xA, 0x0, 0x0, 0x0);
    783             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0xA, 0x0, 0x0, 0x0);
    784             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0xA, 0x0, 0x0, 0x0);
    785             break;
    786         /* ADCs */
    787         case 0x7:
    788             pNode->node.name = "ADC-0";
    789             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x23, 0, 0, 0);
    790             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x23, 0, 0, 0);
    791             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x23, 0, 0, 0);
    792             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x23, 0, 0, 0);
    793             goto adc_init;
    794             break;
    795         case 0x8:
    796             pNode->node.name = "ADC-1";
    797             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x24, 0, 0, 0);
    798             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x24, 0, 0, 0);
    799             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x24, 0, 0, 0);
    800             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x24, 0, 0, 0);
    801             goto adc_init;
    802             break;
    803         case 0x9:
    804             pNode->node.name = "ADC-2";
    805             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x22, 0, 0, 0);
    806             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x22, 0, 0, 0);
    807             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x22, 0, 0, 0);
    808             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x22, 0, 0, 0);
    809         adc_init:
    810             pNode->node.au32F00_param[0xB] = 0x1;
    811             pNode->node.au32F00_param[0x9] = 0x10011b;
    812             pNode->node.au32F00_param[0xD] = 0x80032e10;
    813             pNode->node.au32F00_param[0xE] = 0x1;
    814             pNode->node.au32F00_param[0xA] = pState->pNodes[1].node.au32F00_param[0xA];
    815             pNode->adc.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;
    816             break;
    817         /* Ports */
    818         case 0x14:
    819             pNode->node.name = "PORT-D";
    820             pNode->port.u32F1c_param = 0x12b4050;
    821             pNode->node.au32F00_param[0xC] = RT_BIT(13)|RT_BIT(12)|RT_BIT(11)|RT_BIT(10)|RT_BIT(9)|RT_BIT(8)|RT_BIT(5)|RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    822             goto port_init;
    823             break;
    824         case 0x15:
    825             pNode->node.name = "PORT-A";
    826             pNode->port.u32F1c_param = 0x18b3020;
    827             pNode->node.au32F00_param[0xC] = RT_BIT(13)|RT_BIT(12)|RT_BIT(11)|RT_BIT(10)|RT_BIT(9)|RT_BIT(8)|RT_BIT(5)|RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    828             goto port_init;
    829             break;
    830         case 0x16:
    831             pNode->node.name = "PORT-G";
    832             pNode->port.u32F1c_param = 0x400000f0;
    833             pNode->node.au32F00_param[0xC] = RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    834             goto port_init;
    835             break;
    836         case 0x17:
    837             pNode->node.name = "PORT-H";
    838             pNode->port.u32F1c_param = 0x400000f0;
    839             pNode->node.au32F00_param[0xC] = RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    840             goto port_init;
    841             break;
    842         case 0x18:
    843             pNode->node.name = "PORT-B";
    844             pNode->port.u32F1c_param = 0x90100140;
    845             pNode->node.au32F00_param[0xC] = RT_BIT(13)|RT_BIT(12)|RT_BIT(11)|RT_BIT(10)|RT_BIT(9)|RT_BIT(8)|RT_BIT(5)|RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    846             goto port_init;
    847             break;
    848         case 0x19:
    849             pNode->node.name = "PORT-F";
    850             pNode->port.u32F1c_param = 0x90a00110;
    851             pNode->node.au32F00_param[0xC] = RT_BIT(13)|RT_BIT(12)|RT_BIT(11)|RT_BIT(10)|RT_BIT(9)|RT_BIT(8)|RT_BIT(5)|RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    852             goto port_init;
    853             break;
    854         case 0x1A:
    855             pNode->node.name = "PORT-C";
    856             pNode->port.u32F1c_param = 0x90100141;
    857             pNode->node.au32F00_param[0xC] = RT_BIT(13)|RT_BIT(12)|RT_BIT(11)|RT_BIT(10)|RT_BIT(9)|RT_BIT(8)|RT_BIT(5)|RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    858             goto port_init;
    859             break;
    860         case 0x1B:
    861             pNode->node.name = "PORT-E";
    862             pNode->port.u32F1c_param = 0x400000f0;
    863             pNode->node.au32F00_param[0xC] = RT_BIT(13)|RT_BIT(12)|RT_BIT(11)|RT_BIT(10)|RT_BIT(9)|RT_BIT(8)|RT_BIT(5)|RT_BIT(4)|RT_BIT(3)|RT_BIT(2);
    864         port_init:
    865             pNode->node.au32F00_param[0x9] = 0x40018f;
    866             pNode->node.au32F00_param[0xD] = 0x270300;
    867             pNode->node.au32F00_param[0xE] = 0x5;
    868             /* N = 0~3 */
    869             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0xC, 0xD, 0xE, 0xF);
    870             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0xC, 0xD, 0xE, 0xF);
    871             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0xC, 0xD, 0xE, 0xF);
    872             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0xC, 0xD, 0xE, 0xF);
    873             /* N = 4~7 */
    874             pNode->node.au32F02_param[4] = RT_MAKE_U32_FROM_U8(0x26, 0, 0, 0);
    875             pNode->node.au32F02_param[5] = RT_MAKE_U32_FROM_U8(0x26, 0, 0, 0);
    876             pNode->node.au32F02_param[6] = RT_MAKE_U32_FROM_U8(0x26, 0, 0, 0);
    877             pNode->node.au32F02_param[7] = RT_MAKE_U32_FROM_U8(0x26, 0, 0, 0);
    878             break;
    879         /* ADCVols */
    880         case 0x26:
    881             pNode->node.name = "AdcVol-0";
    882             pNode->node.au32F00_param[0x9] = 0x20010f;
    883             pNode->node.au32F00_param[0xD] = 0x80000000;
    884             pNode->node.au32F00_param[0xE] = 0x2;
    885             pNode->node.au32F00_param[0x12] = 0x34040;
    886             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x25, 0xB, 0, 0);
    887             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x25, 0xB, 0, 0);
    888             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x25, 0xB, 0, 0);
    889             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x25, 0xB, 0, 0);
    890             break;
    891         case 0xF:
    892             pNode->node.name = "AdcVol-1";
    893             pNode->node.au32F00_param[0x9] = 0x20010f;
    894             pNode->node.au32F00_param[0xE] = 0x2;
    895             pNode->node.au32F00_param[0x12] = 0x34040;
    896             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x5, 0xB, 0, 0);
    897             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x5, 0xB, 0, 0);
    898             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x5, 0xB, 0, 0);
    899             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x5, 0xB, 0, 0);
    900             break;
    901         case 0xE:
    902             pNode->node.name = "AdcVol-2";
    903             pNode->node.au32F00_param[0x9] = 0x20010f;
    904             pNode->node.au32F00_param[0xE] = 0x2;
    905             pNode->node.au32F00_param[0xD] = 0x80000000;
    906             pNode->node.au32F00_param[0x12] = 0x34040;
    907             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x4, 0xB, 0, 0);
    908             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x4, 0xB, 0, 0);
    909             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x4, 0xB, 0, 0);
    910             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x4, 0xB, 0, 0);
    911             break;
    912         case 0xD:
    913             pNode->node.name = "AdcVol-3";
    914             pNode->node.au32F00_param[0x9] = 0x20010f;
    915             pNode->node.au32F00_param[0xE] = 0x2;
    916             pNode->node.au32F00_param[0xD] = 0x80000000;
    917             pNode->node.au32F00_param[0x12] = 0x34040;
    918             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x3, 0xB, 0, 0);
    919             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x3, 0xB, 0, 0);
    920             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x3, 0xB, 0, 0);
    921             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x3, 0xB, 0, 0);
    922             break;
    923         case 0xC:
    924             pNode->node.name = "AdcVol-4";
    925             pNode->node.au32F00_param[0x9] = 0x20010f;
    926             pNode->node.au32F00_param[0xE] = 0x2;
    927             pNode->node.au32F00_param[0xD] = 0x80000000;
    928             pNode->node.au32F00_param[0x12] = 0x34040;
    929             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x2, 0xB, 0, 0);
    930             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x2, 0xB, 0, 0);
    931             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x2, 0xB, 0, 0);
    932             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x2, 0xB, 0, 0);
    933             break;
    934         case 0xB:
    935             pNode->node.name = "AdcVol-5";
    936             pNode->node.au32F00_param[0x9] = 0x20010b;
    937             pNode->node.au32F00_param[0xD] = 0x80051f17;
    938             /* N = 0~3 */
    939             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    940             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    941             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    942             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    943             /* N = 4~7 */
    944             pNode->node.au32F02_param[4] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    945             pNode->node.au32F02_param[5] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    946             pNode->node.au32F02_param[6] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    947             pNode->node.au32F02_param[7] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    948             /* N = 8~11 */
    949             pNode->node.au32F02_param[8] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0, 0);
    950             pNode->node.au32F02_param[9] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0, 0);
    951             pNode->node.au32F02_param[10] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0, 0);
    952             pNode->node.au32F02_param[11] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0, 0);
    953             break;
    954         /* AdcMuxs */
    955         case 0x22:
    956             pNode->node.name = "AdcMux-0";
    957             pNode->node.au32F00_param[0x9] = 0x20010b;
    958             pNode->node.au32F00_param[0xD] = 0x80000000;
    959             pNode->node.au32F00_param[0xE] = 0xb;
    960             goto adc_mux_init;
    961         case 0x23:
    962             pNode->node.name = "AdcMux-1";
    963             pNode->node.au32F00_param[0x9] = 0x20010b;
    964             pNode->node.au32F00_param[0xD] = 0x80000000;
    965             pNode->node.au32F00_param[0xE] = 0xb;
    966         adc_mux_init:
    967             /* N = 0~3 */
    968             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    969             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    970             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    971             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    972             /* N = 4~7 */
    973             pNode->node.au32F02_param[4] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    974             pNode->node.au32F02_param[5] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    975             pNode->node.au32F02_param[6] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    976             pNode->node.au32F02_param[7] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    977             /* N = 8~11 */
    978             pNode->node.au32F02_param[8] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0);
    979             pNode->node.au32F02_param[9] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0);
    980             pNode->node.au32F02_param[10] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0);
    981             pNode->node.au32F02_param[11] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0);
    982             break;
    983         case 0x24:
    984             pNode->node.name = "AdcMux-2";
    985             pNode->node.au32F00_param[0x9] = 0x20010b;
    986             pNode->node.au32F00_param[0xD] = 0x80000000;
    987             pNode->node.au32F00_param[0xE] = 0xb;
    988             /* N = 0~3 */
    989             pNode->node.au32F02_param[0] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    990             pNode->node.au32F02_param[1] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    991             pNode->node.au32F02_param[2] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    992             pNode->node.au32F02_param[3] = RT_MAKE_U32_FROM_U8(0x18, 0x19, 0x1A, 0x1B);
    993             /* N = 4~7 */
    994             pNode->node.au32F02_param[4] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    995             pNode->node.au32F02_param[5] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    996             pNode->node.au32F02_param[6] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    997             pNode->node.au32F02_param[7] = RT_MAKE_U32_FROM_U8(0x1C, 0x1D, 0x14, 0x15);
    998             /* N = 8~11 */
    999             pNode->node.au32F02_param[8] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0x12);
    1000             pNode->node.au32F02_param[9] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0x12);
    1001             pNode->node.au32F02_param[10] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0x12);
    1002             pNode->node.au32F02_param[11] = RT_MAKE_U32_FROM_U8(0x16, 0x17, 0xB, 0x12);
    1003             break;
    1004         /* PCBEEP */
    1005         case 0x1D:
    1006             pNode->node.name = "PCBEEP";
    1007             pNode->node.au32F00_param[0x9] = 0x400000;
    1008             pNode->port.u32F1c_param = 0x400000f0;
    1009             pNode->node.au32F00_param[0xC] = RT_BIT(5);
    1010             break;
    1011         /* CD */
    1012         case 0x1C:
    1013             pNode->node.name = "CD";
    1014             pNode->node.au32F00_param[0x9] = 0x400001;
    1015             pNode->port.u32F1c_param = 0x400000f0;
    1016             pNode->node.au32F00_param[0xC] = RT_BIT(5);
    1017             break;
    1018         case 0x21:
    1019             pNode->node.name = "VolumeKnob";
    1020             pNode->node.au32F00_param[0x9] = (0x6 << 20)|RT_BIT(7);
    1021             break;
    1022         default:
    1023             AssertMsgFailed(("Unsupported Node"));
    1024     }
    1025     return VINF_SUCCESS;
    1026 }
    1027 
    1028 
    1029640/* generic */
    1030641
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