X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/6a10d6b465be27db090d760dc0fbe722c94e4344..ba7cd3f22e0ec8c2fc7fd5dae3620aa75d926fd3:/LUFA/Drivers/USB/HighLevel/USBTask.c?ds=inline diff --git a/LUFA/Drivers/USB/HighLevel/USBTask.c b/LUFA/Drivers/USB/HighLevel/USBTask.c index 69670232b..e1c065905 100644 --- a/LUFA/Drivers/USB/HighLevel/USBTask.c +++ b/LUFA/Drivers/USB/HighLevel/USBTask.c @@ -28,7 +28,7 @@ this software. */ -#include "../LowLevel/USBMode.h" +#include "USBMode.h" #define INCLUDE_FROM_USBTASK_C #include "USBTask.h" @@ -64,7 +64,7 @@ static void USB_DeviceTask(void) Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP); - if (Endpoint_IsSetupReceived()) + if (Endpoint_IsSETUPReceived()) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { @@ -86,6 +86,10 @@ static void USB_HostTask(void) static uint16_t WaitMSRemaining; static uint8_t PostWaitState; + uint8_t PrevPipe = Pipe_GetCurrentPipe(); + + Pipe_SelectPipe(PIPE_CONTROLPIPE); + switch (USB_HostState) { case HOST_STATE_WaitForDevice: @@ -94,7 +98,7 @@ static void USB_HostTask(void) if ((SubErrorCode = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful) { USB_HostState = PostWaitState; - ErrorCode = HOST_ENUMERROR_WaitStage; + ErrorCode = HOST_ENUMERROR_WaitStage; break; } @@ -167,11 +171,11 @@ static void USB_HostTask(void) case HOST_STATE_Default: USB_HostRequest = (USB_Host_Request_Header_t) { - bmRequestType: (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE), - bRequest: REQ_GetDescriptor, - wValue: (DTYPE_Device << 8), - wIndex: 0, - wLength: PIPE_CONTROLPIPE_DEFAULT_SIZE, + .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE), + .bRequest = REQ_GetDescriptor, + .wValue = (DTYPE_Device << 8), + .wIndex = 0, + .wLength = PIPE_CONTROLPIPE_DEFAULT_SIZE, }; uint8_t DataBuffer[PIPE_CONTROLPIPE_DEFAULT_SIZE]; @@ -212,11 +216,11 @@ static void USB_HostTask(void) USB_HostRequest = (USB_Host_Request_Header_t) { - bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE), - bRequest: REQ_SetAddress, - wValue: USB_HOST_DEVICEADDRESS, - wIndex: 0, - wLength: 0, + .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE), + .bRequest = REQ_SetAddress, + .wValue = USB_HOST_DEVICEADDRESS, + .wIndex = 0, + .wLength = 0, }; if ((SubErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful) @@ -249,5 +253,7 @@ static void USB_HostTask(void) USB_ResetInterface(); } + + Pipe_SelectPipe(PrevPipe); } #endif