Add support for the Atmel UC3-A3 Xplained board.
[pub/USBasp.git] / LUFA / Drivers / USB / Core / USBTask.c
index c0cd711..be14611 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -45,32 +45,32 @@ volatile uint8_t     USB_DeviceState;
 
 void USB_USBTask(void)
 {
 
 void USB_USBTask(void)
 {
-       #if defined(USB_HOST_ONLY)
-               USB_HostTask();
-       #elif defined(USB_DEVICE_ONLY)
-               USB_DeviceTask();
-       #else
+       #if defined(USB_CAN_BE_BOTH)
                if (USB_CurrentMode == USB_MODE_Device)
                  USB_DeviceTask();
                else if (USB_CurrentMode == USB_MODE_Host)
                  USB_HostTask();
                if (USB_CurrentMode == USB_MODE_Device)
                  USB_DeviceTask();
                else if (USB_CurrentMode == USB_MODE_Host)
                  USB_HostTask();
+       #elif defined(USB_CAN_BE_HOST)
+               USB_HostTask();
+       #elif defined(USB_CAN_BE_DEVICE)
+               USB_DeviceTask();
        #endif
 }
 
 #if defined(USB_CAN_BE_DEVICE)
 static void USB_DeviceTask(void)
 {
        #endif
 }
 
 #if defined(USB_CAN_BE_DEVICE)
 static void USB_DeviceTask(void)
 {
-       if (USB_DeviceState != DEVICE_STATE_Unattached)
-       {
-               uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
+       if (USB_DeviceState == DEVICE_STATE_Unattached)
+         return;
+
+       uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
 
 
-               Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
+       Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
 
 
-               if (Endpoint_IsSETUPReceived())
-                 USB_Device_ProcessControlRequest();
+       if (Endpoint_IsSETUPReceived())
+         USB_Device_ProcessControlRequest();
 
 
-               Endpoint_SelectEndpoint(PrevEndpoint);
-       }
+       Endpoint_SelectEndpoint(PrevEndpoint);
 }
 #endif
 
 }
 #endif