USB_Host_ResumeBus();\r
\r
if ((ReturnStatus = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)\r
- return ReturnStatus;\r
+ goto End_Of_Control_Send;\r
\r
Pipe_SetToken(PIPE_TOKEN_SETUP);\r
Pipe_ClearErrorFlags();\r
\r
Pipe_ClearSETUP();\r
\r
- if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_SetupSent)))\r
+ if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_SetupSent)) != HOST_SENDCONTROL_Successful)\r
goto End_Of_Control_Send;\r
\r
Pipe_Freeze();\r
{\r
Pipe_Unfreeze();\r
\r
- if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_InReceived)))\r
+ if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived)) != HOST_SENDCONTROL_Successful)\r
goto End_Of_Control_Send;\r
\r
if (!(Pipe_BytesInPipe()))\r
Pipe_SetToken(PIPE_TOKEN_OUT);\r
Pipe_Unfreeze();\r
\r
- if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))\r
+ if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)\r
goto End_Of_Control_Send;\r
\r
Pipe_ClearOUT();\r
\r
- if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))\r
+ if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)\r
goto End_Of_Control_Send;\r
}\r
else\r
\r
while (DataLen)\r
{\r
- if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))\r
+ if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)\r
goto End_Of_Control_Send;\r
\r
while (DataLen && (Pipe_BytesInPipe() < USB_ControlPipeSize))\r
Pipe_ClearOUT();\r
}\r
\r
- if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_OutReady)))\r
+ if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)\r
goto End_Of_Control_Send;\r
\r
Pipe_Freeze();\r
Pipe_SetToken(PIPE_TOKEN_IN);\r
Pipe_Unfreeze();\r
\r
- if ((ReturnStatus = USB_Host_Wait_For_Setup_IOS(USB_HOST_WAITFOR_InReceived)))\r
+ if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived)) != HOST_SENDCONTROL_Successful)\r
goto End_Of_Control_Send;\r
\r
Pipe_ClearIN();\r
return ReturnStatus;\r
}\r
\r
-static uint8_t USB_Host_Wait_For_Setup_IOS(const uint8_t WaitType)\r
+static uint8_t USB_Host_WaitForIOS(const uint8_t WaitType)\r
{\r
+ #if (USB_HOST_TIMEOUT_MS < 0xFF)\r
+ uint8_t TimeoutCounter = USB_HOST_TIMEOUT_MS; \r
+ #else\r
uint16_t TimeoutCounter = USB_HOST_TIMEOUT_MS;\r
+ #endif\r
\r
while (!(((WaitType == USB_HOST_WAITFOR_SetupSent) && Pipe_IsSETUPSent()) ||\r
((WaitType == USB_HOST_WAITFOR_InReceived) && Pipe_IsINReceived()) ||\r