diff --git a/LUFA.pnproj b/LUFA.pnproj
index 5e53a2b36d..3fc4290f52 100644
--- a/LUFA.pnproj
+++ b/LUFA.pnproj
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
index fdcfef2726..34234fe84a 100644
--- a/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
+++ b/LUFA/Drivers/USB/LowLevel/USBInterrupt.c
@@ -74,6 +74,15 @@ void USB_INT_ClearAllInterrupts(void)
ISR(USB_GEN_vect, ISR_BLOCK)
{
#if defined(USB_CAN_BE_DEVICE)
+ #if !defined(NO_SOF_EVENTS)
+ if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI))
+ {
+ USB_INT_Clear(USB_INT_SOFI);
+
+ EVENT_USB_Device_StartOfFrame();
+ }
+ #endif
+
#if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
if (USB_INT_HasOccurred(USB_INT_VBUS) && USB_INT_IsEnabled(USB_INT_VBUS))
{
@@ -161,18 +170,18 @@ ISR(USB_GEN_vect, ISR_BLOCK)
EVENT_USB_Device_Reset();
}
+ #endif
+ #if defined(USB_CAN_BE_HOST)
#if !defined(NO_SOF_EVENTS)
- if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI))
+ if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI))
{
- USB_INT_Clear(USB_INT_SOFI);
+ USB_INT_Clear(USB_INT_HSOFI);
- EVENT_USB_Device_StartOfFrame();
+ EVENT_USB_Host_StartOfFrame();
}
#endif
- #endif
- #if defined(USB_CAN_BE_HOST)
if (USB_INT_HasOccurred(USB_INT_DDISCI) && USB_INT_IsEnabled(USB_INT_DDISCI))
{
USB_INT_Clear(USB_INT_DDISCI);
@@ -218,15 +227,6 @@ ISR(USB_GEN_vect, ISR_BLOCK)
USB_ResetInterface();
}
-
- #if !defined(NO_SOF_EVENTS)
- if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI))
- {
- USB_INT_Clear(USB_INT_HSOFI);
-
- EVENT_USB_Host_StartOfFrame();
- }
- #endif
#endif
#if defined(USB_CAN_BE_BOTH)
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 80e56de57b..915b83a4db 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -51,6 +51,7 @@
* - Renamed the PRNT_Host_SendString(), CDC_Host_SendString() and CDC_Device_SendString() functions to *_SendData(), and
* added new versions of the *_SendString() routines that expect a null terminated string instead
* - Renamed all driver termination *_ShutDown() functions to the more logical name *_Disable()
+ * - Reduced latency for executing the Start-Of-Frame events (if enabled in the user application)
* - Library Applications:
* - Changed the XPLAINBridge software UART to use the regular timer CTC mode instead of the alternative CTC mode
* via the Input Capture register, to reduce user confusion
diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt
index 1bd16815e2..4dc51d01c6 100644
--- a/LUFA/ManPages/LUFAPoweredProjects.txt
+++ b/LUFA/ManPages/LUFAPoweredProjects.txt
@@ -43,6 +43,7 @@
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
* - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/
* - ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/
+ * - DIY PS3 controller emulator: https://code.google.com/p/diyps3controller/
* - EMUCOMBOX, a USB-RS422 adapter for E-Mu Emax samplers: http://users.skynet.be/emxp/EMUCOMBOX.htm
* - Estick JTAG, an ARM JTAG debugger: http://code.google.com/p/estick-jtag/
* - "Fingerlicking Wingdinger" (WARNING: Bad Language if no Javascript), a MIDI controller: http://noisybox.net/electronics/wingdinger/