- Timestamp:
- Oct 8, 2020 10:09:52 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 140802
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/USB/USBProxyDevice.cpp
r82968 r86491 1082 1082 AssertRCReturn(rc, rc); 1083 1083 1084 bool fEditRemoteWake; 1085 rc = CFGMR3QueryBool(pCfg, "EditRemoteWake", &fEditRemoteWake); 1086 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1087 rc = CFGMR3QueryBool(pCfgGlobalDev, "EditRemoteWake", &fEditRemoteWake); 1088 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1089 fEditRemoteWake = true; /* NB: On by default! */ 1090 else 1091 AssertRCReturn(rc, rc); 1092 1084 1093 /* 1085 1094 * If we're masking interfaces, edit the descriptors. … … 1181 1190 } 1182 1191 } 1192 } 1193 } 1194 1195 /* 1196 * Disable remote wakeup capability, see @bugref{9839}. This is done on 1197 * a device/configuration level, no need to dig too deep through the descriptors. 1198 * On most backends, we can't perform a real selective suspend, and more importantly 1199 * can't receive a remote wake notification. If a guest suspends the device and waits 1200 * for a remote wake, the device is effectively dead. 1201 */ 1202 if (fEditRemoteWake) 1203 { 1204 PVUSBDESCCONFIGEX paCfgs = pThis->paCfgDescs; 1205 for (unsigned iCfg = 0; iCfg < pThis->DevDesc.bNumConfigurations; iCfg++) 1206 { 1207 Log(("usb-proxy: pProxyDev=%s configuration %d with bmAttr=%02X\n", 1208 pUsbIns->pszName, paCfgs[iCfg].Core.bmAttributes, iCfg)); 1209 paCfgs[iCfg].Core.bmAttributes = paCfgs[iCfg].Core.bmAttributes & ~RT_BIT(5); /* Remote wakeup. */ 1210 fEdited = true; 1211 LogRel(("VUSB: Disabled '%s' remote wakeup for configuration %d\n", pUsbIns->pszName, iCfg)); 1183 1212 } 1184 1213 }
Note:
See TracChangeset
for help on using the changeset viewer.