Changeset 70316 in vbox for trunk/src/VBox
- Timestamp:
- Dec 22, 2017 12:58:24 PM (7 years ago)
- Location:
- trunk/src/VBox/Devices/Audio
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevHDA.cpp
r70278 r70316 1478 1478 } 1479 1479 1480 hdaStreamLock(pStream); 1481 1480 1482 uint32_t v = HDA_REG_IND(pThis, iReg); 1481 1483 … … 1557 1559 /* Reset processed data counter. */ 1558 1560 pStream->State.cbTransferProcessed = 0; 1561 pStream->State.tsTransferNext = tsNow + cTicksToNext; 1562 1563 Assert(pStream->State.cTransferPendingInterrupts); 1564 if (pStream->State.cTransferPendingInterrupts) 1565 pStream->State.cTransferPendingInterrupts--; 1559 1566 1560 1567 /* Re-arm the timer. */ 1561 1568 hdaTimerSet(pThis, tsNow + cTicksToNext, false /* fForce */); 1562 1569 } 1570 1571 hdaStreamUnlock(pStream); 1563 1572 1564 1573 DEVHDA_UNLOCK_BOTH(pThis); -
trunk/src/VBox/Devices/Audio/HDAStream.cpp
r70295 r70316 560 560 /** 561 561 * Returns whether a next transfer for a given stream is scheduled or not. 562 * This takes pending stream interrupts into account as well as the next scheduled 563 * transfer timestamp. 562 564 * 563 565 * @returns True if a next transfer is scheduled, false if not. … … 572 574 573 575 const bool fScheduled = pStream->State.fRunning 574 && pStream->State.tsTransferNext > TMTimerGet(pStream->pHDAState->pTimer); 575 576 Log3Func(("[SD%RU8] %RU64 -> %RTbool\n", pStream->u8SD, pStream->State.tsTransferNext, fScheduled)); 576 && ( pStream->State.cTransferPendingInterrupts 577 || pStream->State.tsTransferNext > TMTimerGet(pStream->pHDAState->pTimer)); 578 579 Log3Func(("[SD%RU8] tsTransferNext=%RU64, cTransferPendingInterrupts=%RU8 -> %RTbool\n", 580 pStream->u8SD, pStream->State.tsTransferNext, fScheduled)); 577 581 578 582 return fScheduled; … … 1098 1102 hdaProcessInterrupt(pThis, __FUNCTION__); 1099 1103 #endif 1100 pStream->State.cTransferPendingInterrupts--;1101 1104 } 1102 1105 else /* Transfer still in-flight -- schedule the next timing slot. */
Note:
See TracChangeset
for help on using the changeset viewer.