Changeset 31378 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Aug 5, 2010 4:09:21 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 64435
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp
r31377 r31378 1135 1135 { 1136 1136 dump_bd(pState); 1137 pState->u32Cvi;1138 1137 uint8_t bdle[16]; 1139 1138 PDMDevHlpPhysRead(ICH6_HDASTATE_2_DEVINS(pState), SDBDPL(pState, 4) + pState->u32Cvi*16, bdle, 16); … … 1206 1205 PDMDevHlpPhysRead(ICH6_HDASTATE_2_DEVINS(pState), (pState->u64DPBase & ~0x1) + 4*8, &u32Counter, 4); 1207 1206 written = write_audio(pState, avail, &fStop); 1208 if (fStop) 1207 if ( fStop 1208 && pState->u32CviLen != pState->u32CviPos) 1209 1209 break; 1210 1210 SDLPIB(pState, 4) += written; /* bytes ? */ … … 1212 1212 u32Counter += written; 1213 1213 PDMDevHlpPhysWrite(ICH6_HDASTATE_2_DEVINS(pState), (pState->u64DPBase & ~0x1) + 4*8, &u32Counter, 4); 1214 if ( pState->u32CviPos == pState->u32CviLen1214 if ( pState->u32CviPos == pState->u32CviLen 1215 1215 || SDLPIB(pState, 4) == SDLCBL(pState, 4)) 1216 1216 { 1217 1217 if ( SDCTL(pState, 4) & HDA_REG_FIELD_FLAG_MASK(SDCTL, ICE) 1218 && ( pState->u32CviPos == pState->u32CviLen 1218 && ( ( pState->u32CviPos == pState->u32CviLen 1219 && pState->fCviIoc) 1219 1220 || SDLPIB(pState, 4) == SDLCBL(pState, 4))) 1220 1221 { … … 1228 1229 PDMDevHlpPhysWrite(ICH6_HDASTATE_2_DEVINS(pState), (pState->u64DPBase & ~0x1) + 4*8, &u32Counter, 4); 1229 1230 } 1230 if (pState->u32CviPos == pState->u32CviLen)1231 {1232 pState->u32CviPos = 0;1233 pState->u32Cvi++;1234 if (pState->u32Cvi == SDLVI(pState, 4) + 1)1235 pState->u32Cvi = 0;1236 }1237 1231 } 1232 if (pState->u32CviPos == pState->u32CviLen) 1233 { 1234 pState->u32CviPos = 0; 1235 pState->u32Cvi++; 1236 if (pState->u32Cvi == SDLVI(pState, 4) + 1) 1237 pState->u32Cvi = 0; 1238 } 1239 fStop = false; 1238 1240 } 1239 1241 fetch_bd(pState);
Note:
See TracChangeset
for help on using the changeset viewer.