Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

USB devices may fail to resume from selective suspend on a computer running Windows 7


Symptoms

Consider the following scenario:
  • A Windows 7 computer with an internal or external high-speed USB hub.
  • A full-speed or low-speed USB device connected to the high-speed hub.
  • The Selective Suspend feature is enabled on the full-speed or low-speed USB device.
  • The USB device is left idle long enough to enter Selective Suspend.
Intermittently, the USB device will fail to resume from Selective Suspend.  A common configuration where this can occur includes a Bluetooth radio along with a Bluetooth mouse.  When the mouse is left idle for at least 10 seconds the Bluetooth radio will enter Selective Suspend.  If the mouse is then moved, it is expected that the Bluetooth radio will resume from Selective Suspend and the mouse will work normally.

You can check if Selective Suspend is enabled by going to Device Manager and navigating to the USB device.   Right click on the device and go to the Properties page.  Go to the "Power Management" tab.  If "Allow the computer to turn off this device to save power" is selected, then Selective Suspend is enabled.

↑ Back to the top


Cause

The Transaction Translator in the high-speed USB is responding with a STALL condition after receiving a split-complete packet.  The STALL condition indicates a protocol violation in the hardware.  When this occurs, the resume from Selective Suspend does not complete successfully.  This issue has been seen on USB host controllers on the Huron River chipset.

↑ Back to the top


Resolution

You may be able to work around the issue by adding the following registry key.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\vvvvpppprrrr] "NoClearTTBufferOnCancel" REG_BINARY 01

where vvvv is a 4-digit hexadecimal number that identifies the vendor (idDevice from the USB Device Descriptor),
pppp is a 4-digit hexadecimal number that identifies the product (idVendor from the USB Device Descriptor), and
rrrr is a 4-digit binary-coded decimal number that contains the revision number of the device (bcdDevice from the USB Device Descriptor).

For example using the case of the Intel® 5 Series Chipset, Intel® 3400 Series Chipset, or later chipset with vvvv=8087, pppp=0020, and rrrr=0000 the registry key would appear as follows

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\808700200000] "NoClearTTBufferOnCancel" REG_BINARY 01

↑ Back to the top


Keywords: kb

↑ Back to the top

Article Info
Article ID : 2484742
Revision : 1
Created on : 1/7/2017
Published on : 5/9/2011
Exists online : False
Views : 144