X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/e071f3897a0946c6be1e1b5e1f78eda8dcbf6fc7..ab2ae13d81427ddddbd24e8ba6bdfbd2f05ff958:/LUFA/Drivers/USB/HighLevel/USBInterrupt.c diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c index 5edefa996..51a761ae7 100644 --- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c +++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c @@ -93,7 +93,10 @@ ISR(USB_GEN_vect, ISR_BLOCK) USB_Detach(); USB_CLK_Freeze(); - USB_PLL_Off(); + + if (!(USB_Options & USB_OPT_MANUAL_PLL)) + USB_PLL_Off(); + USB_REG_Off(); EVENT_USB_VBUSDisconnect(); @@ -143,7 +146,7 @@ ISR(USB_GEN_vect, ISR_BLOCK) USB_DeviceState = DEVICE_STATE_Powered; EVENT_USB_Connect(); #else - USB_DeviceState = DEVICE_STATE_Configured; + USB_DeviceState = (USB_ConfigurationNumber) ? DEVICE_STATE_Configured : DEVICE_STATE_Addressed; EVENT_USB_WakeUp(); #endif } @@ -249,7 +252,7 @@ ISR(USB_GEN_vect, ISR_BLOCK) } #if defined(INTERRUPT_CONTROL_ENDPOINT) -ISR(USB_COM_vect, ISR_BLOCK) +ISR(USB_COM_vect, ISR_NOBLOCK) { uint8_t PrevSelectedEndpoint = Endpoint_GetCurrentEndpoint();