Send Stall in response to USB SET FEATURE or CLEAR FEATURE requests. Speeds up device enumeration on linux by 10s.

This commit is contained in:
henryk@ploetzli.ch 2009-08-28 00:44:09 +00:00
parent ba8a80b30c
commit 8e19377db1

View file

@ -259,6 +259,19 @@ static void UsbSendZeroLength(void)
;
}
static void UsbSendStall(void)
{
UDP_ENDPOINT_CSR(0) |= UDP_CSR_FORCE_STALL;
while(!(UDP_ENDPOINT_CSR(0) & UDP_CSR_STALL_SENT))
;
UDP_ENDPOINT_CSR(0) &= ~UDP_CSR_STALL_SENT;
while(UDP_ENDPOINT_CSR(0) & UDP_CSR_STALL_SENT)
;
}
static void HandleRxdSetupData(void)
{
int i;
@ -346,6 +359,8 @@ static void HandleRxdSetupData(void)
case USB_REQUEST_CLEAR_FEATURE:
case USB_REQUEST_SET_FEATURE:
UsbSendStall();
break;
case USB_REQUEST_SET_DESCRIPTOR:
case USB_REQUEST_SYNC_FRAME:
default: