Add UUID Class matching to the Service Discovery Protocol code - SDP is now correctly...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / USBInterrupt.c
index 7edd3ce..1c6d6ca 100644 (file)
@@ -233,15 +233,18 @@ ISR(USB_GEN_vect, ISR_BLOCK)
 #if defined(INTERRUPT_CONTROL_ENDPOINT) && defined(USB_CAN_BE_DEVICE)
 ISR(USB_COM_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);
        USB_INT_Disable(USB_INT_RXSTPI);
-       sei();
-       USB_USBTask();
-       USB_INT_Enable(USB_INT_RXSTPI);
 
 
-       USB_INT_Clear(USB_INT_RXSTPI);
-       
+       NONATOMIC_BLOCK(NONATOMIC_FORCEOFF)
+       {
+               USB_Device_ProcessControlRequest();
+       }
+
+       Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
+       USB_INT_Enable(USB_INT_RXSTPI);
        Endpoint_SelectEndpoint(PrevSelectedEndpoint);
 }
 #endif
        Endpoint_SelectEndpoint(PrevSelectedEndpoint);
 }
 #endif