Changeset 34153 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Nov 18, 2010 7:28:16 AM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 67873
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp
r34152 r34153 1034 1034 else if (HDA_IS_STREAM_IN_RESET(pState, offset)) 1035 1035 { 1036 PHDABDLEDESC pBdle = NULL; 1037 uint32_t *pu32Lpib = NULL; 1036 1038 Log(("hda: guest has initiated exit of stream reset\n")); 1037 1039 pState->u8StreamsInReset &= ~HDA_STREAM_BITMASK(offset); 1038 1040 HDA_REG_IND(pState, index) &= ~HDA_REG_FIELD_FLAG_MASK(SDCTL, SRST); 1039 } 1041 switch (index) 1042 { 1043 case ICH6_HDA_REG_SD0CTL: 1044 pBdle = &pState->stInBdle; 1045 pu32Lpib = &SDLPIB(pState, 0); 1046 AUD_set_active_in(ISD0FMT_TO_AUDIO_SELECTOR(pState), 0); 1047 break; 1048 case ICH6_HDA_REG_SD4CTL: 1049 u64BaseDMA = RT_MAKE_U64(SDBDPL(pState, 4), SDBDPU(pState, 4)); 1050 fOn = fOn && u64BaseDMA; 1051 AUD_set_active_out(OSD0FMT_TO_AUDIO_SELECTOR(pState), 0); 1052 pBdle = &pState->stOutBdle; 1053 pu32Lpib = &SDLPIB(pState, 4); 1054 break; 1055 default: 1056 Log(("Attempt to reset DMA state on unattached SDI(%s), ignored\n", s_ichIntelHDRegMap[index].abbrev)); 1057 } 1058 if ( pBdle 1059 && pu32Lpib) 1060 { 1061 memset(pBdle, 0, sizeof(HDABDLEDESC)); 1062 *pu32Lpib = 0; 1063 } 1064 } 1065 /* 1066 * Stopping streams we postpone up to reset exit to let HDA complete the tasks 1067 */ 1040 1068 switch (index) 1041 1069 { 1042 1070 case ICH6_HDA_REG_SD0CTL: 1043 AUD_set_active_in(ISD0FMT_TO_AUDIO_SELECTOR(pState), fOn); 1071 if (fOn) 1072 AUD_set_active_in(ISD0FMT_TO_AUDIO_SELECTOR(pState), 1); 1044 1073 Log(("hda: DMA SD0CTL switched %s\n", fOn ? "on" : " off")); 1045 1074 break; 1046 1075 case ICH6_HDA_REG_SD4CTL: 1076 if (fOn) 1077 SDSTS(pState, 4) &= ~(1<<5); 1047 1078 u64BaseDMA = RT_MAKE_U64(SDBDPL(pState, 4), SDBDPU(pState, 4)); 1048 1079 fOn = fOn && u64BaseDMA; 1049 SDSTS(pState, 4) &= ~(1<<5);1050 AUD_set_active_out(OSD0FMT_TO_AUDIO_SELECTOR(pState), fOn);1080 if (fOn) 1081 AUD_set_active_out(OSD0FMT_TO_AUDIO_SELECTOR(pState), 1); 1051 1082 Log(("hda: DMA SD4CTL switched %s\n", fOn ? "on" : " off")); 1052 1083 break;
Note:
See TracChangeset
for help on using the changeset viewer.