Changeset 31042 in vbox
- Timestamp:
- Jul 23, 2010 9:22:49 AM (14 years ago)
- File:
-
- 1 edited
-
trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevIchIntelHDA.cpp
r31035 r31042 364 364 uint64_t u64DPBase; 365 365 uint8_t u8CORBRP; 366 uint8_t cResponse;367 366 /* pointer on CORB buf */ 368 367 uint32_t *pu32CorbBuf; … … 675 674 uint8_t corbWp; 676 675 uint8_t rirbWp; 676 uint8_t u8Counter = 0; 677 677 678 678 PFNCODECVERBPROCESSOR pfn = (PFNCODECVERBPROCESSOR)NULL; … … 694 694 if (RT_FAILURE(rc)) 695 695 AssertRCReturn(rc, rc); 696 Assert(pfn); 696 697 (rirbWp)++; 697 698 rc = pfn(&pState->Codec, cmd, &pState->pu64RirbBuf[rirbWp]); 698 699 if (RT_FAILURE(rc)) 699 700 AssertRCReturn(rc, rc); 700 pState->cResponse++; 701 u8Counter++; 702 if (u8Counter == RINTCNT_N(pState)) 703 break; 701 704 } 702 705 pState->au32Regs[ICH6_HDA_REG_CORBRP] = corbRp; … … 704 707 rc = hdaCmdSync(pState, false); 705 708 Log(("hda: CORB(RP:%x, WP:%x) RIRBWP:%x\n", CORBRP(pState), CORBWP(pState), RIRBWP(pState))); 706 if ( RIRBCTL_RIRB_RIC(pState) 707 && (pState)->cResponse == RINTCNT_N(pState)) 709 if (RIRBCTL_RIRB_RIC(pState)) 708 710 { 709 711 RIRBSTS((pState)) |= HDA_REG_FIELD_FLAG_MASK(RIRBSTS,RINTFL); 710 712 rc = hdaProcessInterrupt(pState); 711 (pState)->cResponse = 0;712 713 } 713 714 if (RT_FAILURE(rc))
Note:
See TracChangeset
for help on using the changeset viewer.

