Speed up bit-banged USART code in the AVRISP project.
[pub/USBasp.git] / LUFA / Drivers / USB / HighLevel / USBTask.c
index 46fcd57..f1277b9 100644 (file)
 #define  INCLUDE_FROM_USBTASK_C\r
 #include "USBTask.h"\r
 \r
 #define  INCLUDE_FROM_USBTASK_C\r
 #include "USBTask.h"\r
 \r
-volatile bool        USB_IsSuspended;\r
-volatile bool        USB_IsConnected;\r
 volatile bool        USB_IsInitialized;\r
 USB_Request_Header_t USB_ControlRequest;\r
 \r
 volatile bool        USB_IsInitialized;\r
 USB_Request_Header_t USB_ControlRequest;\r
 \r
-#if defined(USB_CAN_BE_HOST)\r
-volatile uint8_t   USB_HostState;\r
+#if defined(USB_CAN_BE_HOST) && !defined(HOST_STATE_AS_GPIOR)\r
+volatile uint8_t     USB_HostState;\r
+#endif\r
+\r
+#if defined(USB_CAN_BE_DEVICE) && !defined(DEVICE_STATE_AS_GPIOR)\r
+volatile uint8_t     USB_DeviceState;\r
 #endif\r
 \r
 void USB_USBTask(void)\r
 #endif\r
 \r
 void USB_USBTask(void)\r
@@ -59,19 +61,14 @@ void USB_USBTask(void)
 #if defined(USB_CAN_BE_DEVICE)\r
 static void USB_DeviceTask(void)\r
 {\r
 #if defined(USB_CAN_BE_DEVICE)\r
 static void USB_DeviceTask(void)\r
 {\r
-       if (USB_IsConnected)\r
+       if (USB_DeviceState != DEVICE_STATE_Unattached)\r
        {\r
                uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();\r
        \r
                Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);\r
 \r
                if (Endpoint_IsSETUPReceived())\r
        {\r
                uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();\r
        \r
                Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);\r
 \r
                if (Endpoint_IsSETUPReceived())\r
-               {\r
-                       ATOMIC_BLOCK(ATOMIC_RESTORESTATE)\r
-                       {\r
-                               USB_Device_ProcessControlPacket();\r
-                       }\r
-               }\r
+                 USB_Device_ProcessControlRequest();\r
                \r
                Endpoint_SelectEndpoint(PrevEndpoint);\r
        }\r
                \r
                Endpoint_SelectEndpoint(PrevEndpoint);\r
        }\r