aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/src_sam3s/USBD_HAL.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/src_sam3s/USBD_HAL.c')
-rw-r--r--firmware/src_sam3s/USBD_HAL.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/firmware/src_sam3s/USBD_HAL.c b/firmware/src_sam3s/USBD_HAL.c
index 8a2645b..7776004 100644
--- a/firmware/src_sam3s/USBD_HAL.c
+++ b/firmware/src_sam3s/USBD_HAL.c
@@ -52,6 +52,7 @@
#include "chip.h"
#include "USBD_HAL.h"
+#include <usb/device/dfu/dfu.h>
#include <stdbool.h>
#include <stdint.h>
@@ -1161,6 +1162,12 @@ void USBD_IrqHandler(void)
else if ((status & UDP_ISR_ENDBUSRES) != 0) {
TRACE_INFO_WP("EoBRes ");
+
+#if defined(BOARD_USB_DFU) && defined(dfu)
+ if (g_dfu.past_manifest)
+ USBDFU_SwitchToApp();
+#endif
+
/* Flush and enable the Suspend interrupt */
UDP->UDP_ICR = UDP_ICR_WAKEUP | UDP_ICR_RXRSM | UDP_ICR_RXSUSP;
UDP->UDP_IER = UDP_IER_RXSUSP;