aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-05-04 10:16:44 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-05-04 10:16:44 +0000
commit708a1c6166af75f0243972c81d06978cc9bf20be (patch)
tree978200eb752e4290ac94c930607544d4864a4189 /LUFA/Drivers/USB/LowLevel/USBInterrupt.c
parente652cfac67ace9c307612cd2e1df70142358c673 (diff)
downloadlufa-708a1c6166af75f0243972c81d06978cc9bf20be.tar.gz
lufa-708a1c6166af75f0243972c81d06978cc9bf20be.tar.bz2
lufa-708a1c6166af75f0243972c81d06978cc9bf20be.zip
Fixed INTERRUPT_CONTROL_ENDPOINT compile time option preventing other interrupts from occuring while the control endpoint request is being processed, causing possible lockups if a USB interrupt occurs during a transfer.
Diffstat (limited to 'LUFA/Drivers/USB/LowLevel/USBInterrupt.c')
-rw-r--r--LUFA/Drivers/USB/LowLevel/USBInterrupt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
index 925248d13..2d9e35b72 100644
--- a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
+++ b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
@@ -235,7 +235,10 @@ ISR(USB_COM_vect, ISR_BLOCK)
{
uint8_t PrevSelectedEndpoint = Endpoint_GetCurrentEndpoint();
+ USB_INT_Disable(USB_INT_RXSTPI);
+ sei();
USB_USBTask();
+ USB_INT_Enable(USB_INT_RXSTPI);
USB_INT_Clear(USB_INT_RXSTPI);