Fixed incorrect reponse to GET STATUS requests in device mode if NO_DEVICE_SELF_POWER...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 15 Apr 2012 13:34:11 +0000 (13:34 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 15 Apr 2012 13:34:11 +0000 (13:34 +0000)
LUFA/DoxygenPages/ChangeLog.txt
LUFA/Drivers/USB/Core/DeviceStandardReq.c

index 6bf1e82..d7fcd4a 100644 (file)
@@ -46,6 +46,7 @@
   *   - Fixed compile error for the UC3 architecture when INTERRUPT_CONTROL_ENDPOINT is specified (thanks to Andrus Aaslaid)
   *   - Fixed compile error if LEDs_Disable() is called and BOARD=NONE is set (thanks to Sam Lin)
   *   - Fixed inverted LED logic in the OLIMEX162 board LED driver
+  *   - Fixed incorrect reponse to GET STATUS requests in device mode if NO_DEVICE_SELF_POWER or NO_DEVICE_REMOTE_WAKEUP tokens are defined (thanks to Georg Glock)
   *  - Library Applications:
   *   - Fixed error in the AVRISP-MKII programmer when ISP mode is used at 64KHz (thanks to Ben R. Porter)
   *   - Fixed AVRISP-MKII programmer project failing to compile for the U4 chips when VTARGET_ADC_CHANNEL is defined to an invalid channel and NO_VTARGET_DETECT is
index 61082cf..f5e1cca 100644 (file)
@@ -289,7 +289,6 @@ static void USB_Device_GetStatus(void)
 
        switch (USB_ControlRequest.bmRequestType)
        {
-               #if !defined(NO_DEVICE_SELF_POWER) || !defined(NO_DEVICE_REMOTE_WAKEUP)
                case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE):
                        #if !defined(NO_DEVICE_SELF_POWER)
                        if (USB_Device_CurrentlySelfPowered)
@@ -301,17 +300,16 @@ static void USB_Device_GetStatus(void)
                          CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED;
                        #endif
                        break;
-               #endif
-               #if !defined(CONTROL_ONLY_DEVICE)
                case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_ENDPOINT):
+                       #if !defined(CONTROL_ONLY_DEVICE)
                        Endpoint_SelectEndpoint((uint8_t)USB_ControlRequest.wIndex & ENDPOINT_EPNUM_MASK);
 
                        CurrentStatus = Endpoint_IsStalled();
 
                        Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
+                       #endif
 
                        break;
-               #endif
                default:
                        return;
        }