Changeset 67588 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Jun 23, 2017 4:36:47 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 116346
- Location:
- trunk/src/VBox/Devices/USB
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/USB/DrvVUSBRootHub.cpp
r66418 r67588 982 982 983 983 /** @interface_method_impl{VUSBIROOTHUBCONNECTOR,pfnGetPeriodicFrameRate} */ 984 static DECLCALLBACK(uint32_t) vusbRhGetP riodicFrameRate(PVUSBIROOTHUBCONNECTOR pInterface)984 static DECLCALLBACK(uint32_t) vusbRhGetPeriodicFrameRate(PVUSBIROOTHUBCONNECTOR pInterface) 985 985 { 986 986 PVUSBROOTHUB pThis = VUSBIROOTHUBCONNECTOR_2_VUSBROOTHUB(pInterface); 987 987 988 988 return pThis->uFrameRate; 989 } 990 991 /** @interface_method_impl{VUSBIROOTHUBCONNECTOR,pfnGetPeriodicFrameRate} */ 992 static DECLCALLBACK(uint32_t) vusbRhUpdateIsocFrameDelta(PVUSBIROOTHUBCONNECTOR pInterface, PVUSBIDEVICE pDevice, 993 int EndPt, VUSBDIRECTION enmDir, uint16_t uNewFrame, uint8_t uBits) 994 { 995 PVUSBROOTHUB pRh = VUSBIROOTHUBCONNECTOR_2_VUSBROOTHUB(pInterface); 996 AssertReturn(pRh, 0); 997 PVUSBDEV pDev = (PVUSBDEV)pDevice; 998 PVUSBPIPE pPipe = &pDev->aPipes[EndPt]; 999 uint32_t *puLastFrame; 1000 int32_t uFrameDelta; 1001 uint32_t uMaxVal = 1 << uBits; 1002 1003 puLastFrame = enmDir == VUSBDIRECTION_IN ? &pPipe->uLastFrameIn : &pPipe->uLastFrameOut; 1004 uFrameDelta = uNewFrame - *puLastFrame; 1005 *puLastFrame = uNewFrame; 1006 /* Take care of wrap-around. */ 1007 if (uFrameDelta < 0) 1008 uFrameDelta += uMaxVal; 1009 1010 return (uint16_t)uFrameDelta; 989 1011 } 990 1012 … … 1131 1153 pRh->pDevices = pDev; 1132 1154 RTCritSectLeave(&pRh->CritSectDevices); 1133 LogRel(("VUSB: Attached '%s' to port %d on %s (%sSpeed)\n", pDev->pUsbIns->pszName, 1155 LogRel(("VUSB: Attached '%s' to port %d on %s (%sSpeed)\n", pDev->pUsbIns->pszName, 1134 1156 iPort, pHub->pszName, vusbGetSpeedString(pDev->pUsbIns->enmSpeed))); 1135 1157 } … … 1323 1345 pThis->IRhConnector.pfnDetachDevice = vusbRhDetachDevice; 1324 1346 pThis->IRhConnector.pfnSetPeriodicFrameProcessing = vusbRhSetFrameProcessing; 1325 pThis->IRhConnector.pfnGetPeriodicFrameRate = vusbRhGetPriodicFrameRate; 1347 pThis->IRhConnector.pfnGetPeriodicFrameRate = vusbRhGetPeriodicFrameRate; 1348 pThis->IRhConnector.pfnUpdateIsocFrameDelta = vusbRhUpdateIsocFrameDelta; 1326 1349 pThis->hSniffer = VUSBSNIFFER_NIL; 1327 1350 pThis->cbHci = 0; -
trunk/src/VBox/Devices/USB/VUSBInternal.h
r66348 r67588 158 158 /** Count of active async transfers. */ 159 159 volatile uint32_t async; 160 /** Last scheduled frame - only valid for isochronous IN endpoints. */ 161 uint32_t uLastFrameIn; 162 /** Last scheduled frame - only valid for isochronous OUT endpoints. */ 163 uint32_t uLastFrameOut; 160 164 } VUSBPIPE; 161 165 /** Pointer to a VUSB pipe structure. */
Note:
See TracChangeset
for help on using the changeset viewer.