Chapter 5
128
5GV(GCVWTG
Purpose: The host requests to enable a feature on a device, interface, or endpoint.
Request Number (bRequest): 03h
Source of Data: no Data stage
Data Length (wLength): 0000h
Contents of wValue field: the feature to enable
Contents of wIndex field: The low byte equals 00h for a device, the interface number
for an interface, or the endpoint number for an endpoint. For a USB 3.0
FUNCTION_SUSPEND request, the high byte can request the Suspend state (bit 0 =
1) or normal operation (bit 0 = 1) and remote wakeup enabled (bit 1 = 1) or disabled
(bit 1 = 0).
Supported states: For features other than TEST_MODE: Default: undefined.
Address: OK for address zero, endpoint zero. Otherwise the device returns STALL.
Configured: OK. High speed must support the TEST_MODE feature in the Default,
Address, and Configured states.
Behavior on error: If the endpoint or interface specified doesn’t exist, the device
responds with STALL.
Comments: USB 2.0 defines these features:
ENDPOINT_HALT (0000h) applies to endpoints. Bulk and interrupt endpoints
must support the Halt condition. Events that cause a Halt condition are transmission
errors and the device’s receiving a Set Feature request to halt the endpoint.
DEVICE_REMOTE_WAKEUP (0001h) applies to devices. When the host has set
this feature, a device in the Suspend state can request the host to resume communica-
tions. TEST_MODE (0002h) applies to devices. Setting this feature causes an
upstream-facing port to enter a test mode. Chapter 18 has more about test mode.
SuperSpeed supports ENDPOINT_HALT and these features:
FUNCTION_SUSPEND (00h) applies to interfaces and can place a function in the
Suspend state and enable or disable remote wakeup. U1_ENABLE (30h) and
U2_ENABLE (31h) apply to devices and enable the U1 and U2 low-power states.
LTM_ENABLE (32h) applies to devices and enables sending Latency Tolerance Mes-
sages, where a device provides information the host can use in power management.
Chapter 16 has more about power management.
Hubs support additional features.The Get Status request tells the host what features, if
any, are enabled. Also see Clear Feature.