Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts.

pull/1469/head
Dean Camera 14 years ago
parent def0e0ff1b
commit 58167f5d4d

@ -364,18 +364,18 @@ static void USB_Device_ClearSetFeature(void)
Endpoint_SelectEndpoint(EndpointIndex); Endpoint_SelectEndpoint(EndpointIndex);
if (!(Endpoint_IsEnabled())) if (Endpoint_IsEnabled())
return;
if (USB_ControlRequest.bRequest == REQ_SetFeature)
{
Endpoint_StallTransaction();
}
else
{ {
Endpoint_ClearStall(); if (USB_ControlRequest.bRequest == REQ_SetFeature)
Endpoint_ResetFIFO(EndpointIndex); {
Endpoint_ResetDataToggle(); Endpoint_StallTransaction();
}
else
{
Endpoint_ClearStall();
Endpoint_ResetFIFO(EndpointIndex);
Endpoint_ResetDataToggle();
}
} }
} }

@ -24,7 +24,7 @@ uint8_t TEMPLATE_FUNC_NAME (const void* Buffer,
if (Endpoint_IsINReady()) if (Endpoint_IsINReady())
{ {
uint8_t BytesInEndpoint = Endpoint_BytesInEndpoint(); uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
while (Length && (BytesInEndpoint < USB_ControlEndpointSize)) while (Length && (BytesInEndpoint < USB_ControlEndpointSize))
{ {

@ -250,9 +250,9 @@ void USB_ResetInterface(void)
USB_INT_Enable(USB_INT_VBUS); USB_INT_Enable(USB_INT_VBUS);
#endif #endif
#if defined(CONTROL_ONLY_DEVICE) Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
UENUM = ENDPOINT_CONTROLEP; ENDPOINT_DIR_OUT, USB_ControlEndpointSize,
#endif ENDPOINT_BANK_SINGLE);
} }
else if (USB_CurrentMode == USB_MODE_HOST) else if (USB_CurrentMode == USB_MODE_HOST)
{ {

@ -50,6 +50,7 @@
* request handler * request handler
* - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value * - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value
* - Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev) * - Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev)
* - Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts
* *
* \section Sec_ChangeLog100807 Version 100807 * \section Sec_ChangeLog100807 Version 100807
* <b>New:</b> * <b>New:</b>

Loading…
Cancel
Save