From e2d1b437c7454e621a349c9ba47ecfdf91f8fab2 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 18 Feb 2018 17:55:12 +1100
Subject: [PATCH] Fixed incorrect endpoint bank setup on the UC3 architecture
 (thanks to Andrus Aaslaid).

---
 LUFA/DoxygenPages/ChangeLog.txt          | 1 +
 LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 0370ed9c8..780519dde 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -16,6 +16,7 @@
   *   - Fixed DeviceUsesOUTPipe flag not being set correctly in the HID host class driver (thanks to Wolfgang Schnerring)
   *   - Fixed CDC Device class driver's internal serial stream created by \ref CDC_Device_CreateStream not returning the written
   *     character after a successful write (thanks to NicoHood)
+  *   - Fixed incorrect endpoint bank setup on the UC3 architecture (thanks to Andrus Aaslaid)
   *  - Library Applications:
   *   - Fixed bootloaders not disabling global interrupts during erase and write operations (thanks to Zoltan)
   *   - Fixed bootloaders accepting flash writes to the bootloader region (thanks to NicoHood)
diff --git a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
index c12dd704c..e6c6fd547 100644
--- a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
@@ -216,7 +216,7 @@
 				                                      (AVR32_USBB_ALLOC_MASK |
 				                                       ((uint32_t)Type << AVR32_USBB_EPTYPE_OFFSET) |
 				                                       ((Address & ENDPOINT_DIR_IN) ? AVR32_USBB_UECFG0_EPDIR_MASK : 0) |
-				                                       ((Banks > 1) ? AVR32_USBB_UECFG0_EPBK_SINGLE : AVR32_USBB_UECFG0_EPBK_DOUBLE) |
+				                                       (((Banks > 1) ? AVR32_USBB_UECFG0_EPBK_DOUBLE : AVR32_USBB_UECFG0_EPBK_SINGLE) << AVR32_USBB_EPBK_OFFSET) |
 				                                       Endpoint_BytesToEPSizeMask(Size)));
 			}
 
-- 
GitLab