Fix nasty bug in USBInterrupt.c which would cause a lockup if the control endpoint...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / USBInterrupt.c
index 7edd3ce..43df5f6 100644 (file)
@@ -233,15 +233,15 @@ ISR(USB_GEN_vect, ISR_BLOCK)
 #if defined(INTERRUPT_CONTROL_ENDPOINT) && defined(USB_CAN_BE_DEVICE)
 ISR(USB_COM_vect, ISR_BLOCK)
 {
-       uint8_t PrevSelectedEndpoint = Endpoint_GetCurrentEndpoint();
+       uint8_t PrevSelectedEndpoint = Endpoint_GetCurrentEndpoint(); 
 
+       Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
        USB_INT_Disable(USB_INT_RXSTPI);
        sei();
+
        USB_USBTask();
-       USB_INT_Enable(USB_INT_RXSTPI);
 
-       USB_INT_Clear(USB_INT_RXSTPI);
-       
+       USB_INT_Enable(USB_INT_RXSTPI);
        Endpoint_SelectEndpoint(PrevSelectedEndpoint);
 }
 #endif