aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2010-09-22 04:20:45 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2010-09-22 04:20:45 +0000
commitd4630ff5ccea1b1d63b56b52cf423d11f1f57af3 (patch)
tree9e88f349307a63cedbf9e4cf6b35b57c366726d3
parent3cbdb2aeb9bc11bd00205f1151de8ea416d381dc (diff)
Reverted modifications to USBInterrupt.h that were intefering with correct host mode operation.
Fixed SUSPI interrupt not being cleared during device mode enumeration, causing accidental mis-fires on re-enumeration. Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode. git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@1493 d5102386-fcda-11dd-9fdb-3debd5008f28
-rw-r--r--Demos/Host/Incomplete/BluetoothHost/makefile2
-rw-r--r--LUFA/Common/Common.h4
-rw-r--r--LUFA/Drivers/USB/LowLevel/USBController.c1
-rw-r--r--LUFA/Drivers/USB/LowLevel/USBInterrupt.c17
-rw-r--r--LUFA/ManPages/ChangeLog.txt1
5 files changed, 11 insertions, 14 deletions
diff --git a/Demos/Host/Incomplete/BluetoothHost/makefile b/Demos/Host/Incomplete/BluetoothHost/makefile
index 9620ffad..c65cd0f5 100644
--- a/Demos/Host/Incomplete/BluetoothHost/makefile
+++ b/Demos/Host/Incomplete/BluetoothHost/makefile
@@ -80,7 +80,7 @@ BOARD = USBKEY
# does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate
# software delays.
-F_CPU = 16000000
+F_CPU = 8000000
# Input clock frequency.
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index e939b66f..c750e401 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -85,14 +85,14 @@
*
* \ingroup Group_Debugging
*/
- #define JTAG_DEBUG_POINT() asm volatile ("NOP" ::)
+ #define JTAG_DEBUG_POINT() __asm__ volatile ("NOP" ::)
/** Defines an explicit JTAG break point in the resulting binary via the ASM BREAK statement. When
* a JTAG is used, this causes the program execution to halt when reached until manually resumed.
*
* \ingroup Group_Debugging
*/
- #define JTAG_DEBUG_BREAK() asm volatile ("BREAK" ::)
+ #define JTAG_DEBUG_BREAK() __asm__ volatile ("BREAK" ::)
/** Macro for testing condition "x" and breaking via JTAG_DEBUG_BREAK() if the condition is false.
*
diff --git a/LUFA/Drivers/USB/LowLevel/USBController.c b/LUFA/Drivers/USB/LowLevel/USBController.c
index 51e56048..a542353e 100644
--- a/LUFA/Drivers/USB/LowLevel/USBController.c
+++ b/LUFA/Drivers/USB/LowLevel/USBController.c
@@ -203,6 +203,7 @@ static void USB_Init_Device(void)
ENDPOINT_DIR_OUT, USB_ControlEndpointSize,
ENDPOINT_BANK_SINGLE);
+ USB_INT_Clear(USB_INT_SUSPI);
USB_INT_Enable(USB_INT_SUSPI);
USB_INT_Enable(USB_INT_EORSTI);
diff --git a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
index 66a86a1b..7844a87d 100644
--- a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
+++ b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
@@ -34,7 +34,7 @@
void USB_INT_DisableAllInterrupts(void)
{
#if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
- USBCON &= ~((1 << OTGPADE) | (1 << VBUSTE) | (1 << IDTE));
+ USBCON &= ~((1 << VBUSTE) | (1 << IDTE));
#elif defined(USB_SERIES_4_AVR)
USBCON &= ~(1 << VBUSTE);
#endif
@@ -168,8 +168,6 @@ ISR(USB_GEN_vect, ISR_BLOCK)
#endif
#if defined(USB_CAN_BE_HOST)
- bool MustResetInterface = false;
-
if (USB_INT_HasOccurred(USB_INT_DDISCI) && USB_INT_IsEnabled(USB_INT_DDISCI))
{
USB_INT_Clear(USB_INT_DDISCI);
@@ -177,8 +175,8 @@ ISR(USB_GEN_vect, ISR_BLOCK)
USB_INT_Disable(USB_INT_DDISCI);
EVENT_USB_Host_DeviceUnattached();
-
- MustResetInterface = true;
+
+ USB_ResetInterface();
}
if (USB_INT_HasOccurred(USB_INT_VBERRI) && USB_INT_IsEnabled(USB_INT_VBERRI))
@@ -213,7 +211,7 @@ ISR(USB_GEN_vect, ISR_BLOCK)
EVENT_USB_Host_DeviceEnumerationFailed(HOST_ENUMERROR_NoDeviceDetected, 0);
EVENT_USB_Host_DeviceUnattached();
- MustResetInterface = true;
+ USB_ResetInterface();
}
if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI))
@@ -236,13 +234,10 @@ ISR(USB_GEN_vect, ISR_BLOCK)
EVENT_USB_Host_DeviceUnattached();
USB_CurrentMode = USB_GetUSBModeFromUID();
- EVENT_USB_UIDChange();
+ USB_ResetInterface();
- MustResetInterface = true;
+ EVENT_USB_UIDChange();
}
-
- if (MustResetInterface)
- USB_ResetInterface();
#endif
}
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index bf31f76d..a6d04ae1 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -57,6 +57,7 @@
* - Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts
* - Fixed incorrect signature reported in the CDC class bootloader for the ATMEGA32U2
* - Fixed USB_Host_ClearPipeStall() incorrectly determining the endpoint direction from the currently selected pipe
+ * - Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode
*
* \section Sec_ChangeLog100807 Version 100807
* <b>New:</b>