Fixed Remote Wakeup broken on the AVRs due to the mechanism only operating when the...
authorDean Camera <dean@fourwalledcubicle.com>
Tue, 15 Mar 2011 08:07:29 +0000 (08:07 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Tue, 15 Mar 2011 08:07:29 +0000 (08:07 +0000)
Remove redundant setting of UIDE in the AVR8 and AVR32 USB controller drivers.

LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c
LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c
LUFA/Drivers/USB/Core/UC3/USBController_UC3.c
LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c
LUFA/ManPages/ChangeLog.txt

index 8b41711..27eabc3 100644 (file)
@@ -75,12 +75,13 @@ void USB_Init(
        #if defined(USB_CAN_BE_BOTH)
        if (Mode == USB_MODE_UID)
        {
-               UHWCON |= (1 << UIDE);
+               UHWCON |=  (1 << UIDE);
                USB_INT_Enable(USB_INT_IDTI);
                USB_CurrentMode = USB_GetUSBModeFromUID();
        }
        else
        {
+               UHWCON &= ~(1 << UIDE);
                USB_CurrentMode = Mode;
        }
        #endif
index 856ccd6..89d60eb 100644 (file)
@@ -112,8 +112,6 @@ ISR(USB_GEN_vect, ISR_BLOCK)
 
        if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))
        {
-               USB_INT_Clear(USB_INT_SUSPI);
-
                USB_INT_Disable(USB_INT_SUSPI);
                USB_INT_Enable(USB_INT_WAKEUPI);
 
index 40ac381..a9ac248 100644 (file)
@@ -117,10 +117,7 @@ void USB_ResetInterface(void)
 \r
        #if defined(USB_CAN_BE_BOTH)\r
        if (UIDModeSelectEnabled)\r
-       {\r
-               AVR32_USBB.USBCON.uide = true;\r
-               USB_INT_Enable(USB_INT_IDTI);\r
-       }\r
+         USB_INT_Enable(USB_INT_IDTI);\r
        #endif\r
 \r
        USB_CLK_Unfreeze();\r
@@ -129,6 +126,7 @@ void USB_ResetInterface(void)
        {\r
                #if defined(USB_CAN_BE_DEVICE)\r
                AVR32_USBB.USBCON.uimod = true;\r
+\r
                USB_Init_Device();\r
                #endif\r
        }\r
@@ -136,6 +134,7 @@ void USB_ResetInterface(void)
        {\r
                #if defined(USB_CAN_BE_HOST)\r
                AVR32_USBB.USBCON.uimod = false;\r
+\r
                USB_Init_Host();\r
                #endif\r
        }\r
@@ -180,7 +179,6 @@ static void USB_Init_Device(void)
        USB_INT_Enable(USB_INT_EORSTI);\r
 \r
        USB_Attach();\r
-       USB_Device_SetDeviceAddress(0);\r
 }\r
 #endif\r
 \r
index aee8940..76f4ef0 100644 (file)
@@ -79,8 +79,6 @@ ISR(USB_GEN_vect)
 \r
        if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))\r
        {\r
-               USB_INT_Clear(USB_INT_SUSPI);\r
-\r
                USB_INT_Disable(USB_INT_SUSPI);\r
                USB_INT_Enable(USB_INT_WAKEUPI);\r
 \r
index ea3efcd..cf20c70 100644 (file)
@@ -70,7 +70,7 @@
   *   - Changed AVRISP-MKII project to use the Watchdog interrupt for command timeouts, to reduce CPU usage and free timer 0
   *     for other uses
   *   - Updated the software USART code in the XPLAIN Bridge application so that the incomming bits are sampled at their mid-point
-  *     instead of starting point, to give maximum reliability (thanks to Anton)
+  *     instead of starting point, to give maximum reliability (thanks to Anton Staaf)
   *
   *  <b>Fixed:</b>
   *  - Core:
@@ -88,6 +88,7 @@
   *   - Fixed Still Image Host class driver exiting the descriptor search routine prematurely if the data pipes (but not event pipe)
   *     is found
   *   - Fixed missing call to Pipe_SetInfiniteINRequests() in the Pipe_ConfigurePipe() routine
+  *   - Fixed Remote Wakeup broken on the AVRs due to the mechanism only operating when the SUSPI bit is set (thanks to Holger Steinhaus)
   *  - Library Applications:
   *   - Fixed Benito project discarding incoming data from the USB virtual serial port when the USART is busy
   *   - Fixed broken DFU bootloader, added XPLAIN support for bootloader start when XCK jumpered to ground