You might have come across the USB Selective Suspend setting while looking through the advanced power plan settings. Many troubleshooting guides also mention that you need to disable this setting to resolve USB problems.
This setting is enabled by default and as such, most users wonder if disabling it causes any issues in their system.
The short answer to this question is that USB Selective Suspend is a power saving feature and whether you can disable it depends on your scenario.
In this article, we have explained this feature in detail to help you decide if you should turn it on or off by yourself.
What is USB Selective Suspend?
USB selective suspend is a Windows feature that allows the USB hub driver to suspend a single USB port without affecting other ports. This is a power-saving feature that suspends the port when it has been idle for some time.
However, you shouldn’t confuse suspend with disable. The driver doesn’t cut off all power from the ports but powers it down to a low power state.
The suspended USB can respond to the external wake signal if its remote wake-up capacity is enabled. The USB devices produce the wake signals when you insert it to the port.
One thing you should know is that all devices don’t produce wake up signals. Mice, keyboards, modems, external USB hubs, etc., have wake-up capability. However, some devices such as mass storage devices, audio and video device, and so on don’t have such capacity.
To understand the full process for USB Selective Suspend, let’s take a look at the USB power/sleep states and the mechanism behind it.
USB Power States
There are many models of USB power states. However, if we want to discuss the selective suspend, we use the Windows Driver Model (WDM), which has D0 to D3 power states.
The D-state is different from S-state (system’s power level) and C-state (processor’s power level). So, they can have different values. However, a higher D-state can prevent other states from going to a lower level.
D0
In this power state, all USB ports on the computer have full power and receive requests as soon as you connect a device. So, lowering the power state from D1 to D0 disables the suspension of the ports.
Since there’s no need to remotely wake up the port, the driver also disables the remote wake up feature.
D1/D2
In this power state, the bus driver suspends the USB ports. However, it enables the remote wake feature, allowing the port to respond to external wake signals.
D3
It is the deepest USB sleep state. The driver suspends the USB port and also doesn’t allow remote wake ups in this state.
USB selective suspend only lowers the power state to D2 and not D3.
Mechanism for USB Selective Suspend
Windows supports multiple ways to suspend the power of a USB device depending on whether it is a composite or a single interface device. However, the traditional method is by using idle request IRP (I/O Request Packet).
- When a USB device is idle, it’s driver sends an idle request IRP to the USB hub driver to inform it that it can suspend the port or USB device.
- The hub driver sends a set power IRP request to the USB port to change its WDM power state to D2.
- The bus driver pends the idle request IRP until it receives further requests.
- If you connect a USB device that has remote wake-up capacity to the port, the device sends wake signals to the USB driver.
- The USB driver requests the hub driver to put the USB back to the D0 state.
If you connect a device that is not capable of producing remote wake up signal, it needs to rely on the the set power IRP request to change the port’s power state.
- First, the power manager sends a query to determine whether it can change the USB’s power state without disrupting any other tasks.
- Depending on the response the hub gets, it sends the set power IRP request to put the USB back to D0 or lower it to D1/D2.
This is why there’s a period of inactivity after connecting the devices and before you can use them.
In some scenarios, the request to change the USB power state can fail, which leads to USB device not recognized error or even BSOD crashes.
Pros and Cons of USB Selective Suspend
USB Selective Suspend is very useful in saving power for laptops and other portable devices that run on battery. Enabling this setting also helps you prolong the lifespan of the battery.
Many devices, such as fingerprint and biometric scanners don’t require continuous power. So, it’s better to use Selective Suspend if you use such devices.
However, desktop PCs won’t get any use out of this feature as they don’t need to save power. The Selective Suspend is also not appropriate for important peripherals such as keyboard or mouse.
Moreover, as we mentioned earlier, your system may fail to recognize your USB device when this feature is On. This issue is especially prominent in the following scenarios:
- Multiple peripherals are connected to your PC.
- Running resource-intensive tasks, such as games.
How to Enable/Disable USB Selective Suspend?
There are a few ways to enable/disable USB selective suspend on Windows. The easiest methods for changing this setting for all hubs involve using the Control Panel and the Command Prompt. However, you can also use the Device Manager to enable/disable selective suspend for particular USB hubs.
Using Control Panel Power Options
Using the Control Panel is the most convenient way to change your power settings, including USB Selective Suspend. Here’s the complete process:
- Press Win + R to open Run.
- Enter
powercfg.cpl
to open the Control Panel’s Power Options. - Select Change plan settings for your selected power plan.
- Click on Change advanced power settings.
- Expand USB settings > USB selective suspend setting.
- Set all the options to Enabled or Disabled per your need.
- Click Apply and OK.
With Command Prompt
Another method to change the USB selective suspend configuration is by using a CLI command. The commands for power options are difficult to remember, but if you copy and paste the command, this method is the quickest.
To set the setting for AC or plugged in mode for the current power plan:
- Open Run and enter
cmd
to open the Command Prompt. - Use the following commands depending on whether you want to enable or disable USB selective suspend:
- Enable USB Selective Suspend:
powercfg /SETACVALUEINDEX SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0
- Disable USB Selective Suspend:
powercfg /SETACVALUEINDEX SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 1
- Enable USB Selective Suspend:
Use the same commands while replacing SETACVALUEINDEX with SETDCVALUEINDEX for changing the setting for on battery mode.
Through Device Manager
You can set a similar power management option for the USB hubs using the Device Manager. Enabling this option makes your system turn off the hub on idle state to save power. To enable this option,
- Open Run and enter
devmgmt.msc
to open the Device Manager. - Expand Universal Serial Bus controllers.
- Right-click on the USB hubs and select Properties.
- Go to the Power Management tab.
- Check/Uncheck Allow the computer to turn off this device to save power depending on your choice.
- Click OK.
Should You Turn USB Selective Suspend On or Off?
In conclusion, if you use a laptop or any other portable Windows system, you should enable this setting. However, if you start experiencing issues with your USB, such as “device not recognized” errors or BSODs while connecting USB devices, it’s better to turn it off.
For desktop users, this setting has no practical usage and it’s always best to disable it.