projects
/
pub
/
USBasp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d3c623e
)
Fixed possible device lockup when INTERRUPT_CONTROL_ENDPOINT is enabled and the contr...
author
Dean Camera
<dean@fourwalledcubicle.com>
Thu, 13 May 2010 07:43:18 +0000
(07:43 +0000)
committer
Dean Camera
<dean@fourwalledcubicle.com>
Thu, 13 May 2010 07:43:18 +0000
(07:43 +0000)
LUFA/Drivers/USB/LowLevel/USBInterrupt.c
patch
|
blob
|
blame
|
history
LUFA/Drivers/USB/LowLevel/USBInterrupt.h
patch
|
blob
|
blame
|
history
LUFA/ManPages/ChangeLog.txt
patch
|
blob
|
blame
|
history
diff --git
a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
index
43df5f6
..
1c6d6ca
100644
(file)
--- a/
LUFA/Drivers/USB/LowLevel/USBInterrupt.c
+++ b/
LUFA/Drivers/USB/LowLevel/USBInterrupt.c
@@
-237,10
+237,13
@@
ISR(USB_COM_vect, ISR_BLOCK)
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
USB_INT_Disable(USB_INT_RXSTPI);
Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
USB_INT_Disable(USB_INT_RXSTPI);
- sei();
- USB_USBTask();
+ NONATOMIC_BLOCK(NONATOMIC_FORCEOFF)
+ {
+ USB_Device_ProcessControlRequest();
+ }
+ Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
USB_INT_Enable(USB_INT_RXSTPI);
Endpoint_SelectEndpoint(PrevSelectedEndpoint);
}
USB_INT_Enable(USB_INT_RXSTPI);
Endpoint_SelectEndpoint(PrevSelectedEndpoint);
}
diff --git
a/LUFA/Drivers/USB/LowLevel/USBInterrupt.h
b/LUFA/Drivers/USB/LowLevel/USBInterrupt.h
index
a191a29
..
6f8bf7c
100644
(file)
--- a/
LUFA/Drivers/USB/LowLevel/USBInterrupt.h
+++ b/
LUFA/Drivers/USB/LowLevel/USBInterrupt.h
@@
-44,6
+44,7
@@
/* Includes: */
#include <avr/io.h>
#include <avr/interrupt.h>
/* Includes: */
#include <avr/io.h>
#include <avr/interrupt.h>
+ #include <util/atomic.h>
#include <stdbool.h>
#include "../../../Common/Common.h"
#include <stdbool.h>
#include "../../../Common/Common.h"
diff --git
a/LUFA/ManPages/ChangeLog.txt
b/LUFA/ManPages/ChangeLog.txt
index
16925c0
..
09a168d
100644
(file)
--- a/
LUFA/ManPages/ChangeLog.txt
+++ b/
LUFA/ManPages/ChangeLog.txt
@@
-15,6
+15,8
@@
* LIBUSB_DRIVER_COMPAT, as it applies to all software on all platforms using the libUSB driver
*
* <b>Fixed:</b>
* LIBUSB_DRIVER_COMPAT, as it applies to all software on all platforms using the libUSB driver
*
* <b>Fixed:</b>
+ * - Fixed possible device lockup when INTERRUPT_CONTROL_ENDPOINT is enabled and the control endpoint is not properly
+ * selected when the ISR completes
*
* \section Sec_ChangeLog100512 Version 100512
*
*
* \section Sec_ChangeLog100512 Version 100512
*