Fix incorrect bank mask in Endpoint_ConfigureEndpoint() for the UC3 devices.
authorDean Camera <dean@fourwalledcubicle.com>
Sat, 2 Jun 2012 19:34:10 +0000 (19:34 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sat, 2 Jun 2012 19:34:10 +0000 (19:34 +0000)
LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c
LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c

index c027585..f0f319d 100644 (file)
@@ -65,7 +65,7 @@ bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
 bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,
                                     const uint32_t UECFG0Data)
 {
-       USB_Endpoint_FIFOPos[Number] = &AVR32_USBB_SLAVE[Number * 0x10000];
+       USB_Endpoint_FIFOPos[Number] = &AVR32_USBB_SLAVE[Number * ENDPOINT_HSB_ADDRESS_SPACE_SIZE];
 
 #if defined(CONTROL_ONLY_DEVICE) || defined(ORDERED_EP_CONFIG)
        Endpoint_SelectEndpoint(Number);
index a1b2a16..3bd9c55 100644 (file)
                        {
                                return Endpoint_ConfigureEndpoint_Prv((Address & ENDPOINT_EPNUM_MASK),
                                                                      (AVR32_USBB_ALLOC_MASK |
-                                                                      ((uint32_t)Type      << AVR32_USBB_EPTYPE_OFFSET) |
-                                                                      ((uint32_t)(Address & ENDPOINT_DIR_IN) ? AVR32_USBB_UECFG0_EPDIR_MASK : 0) |
-                                                                      ((uint32_t)Banks     << AVR32_USBB_EPBK_OFFSET)   |
+                                                                      ((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) |
                                                                       Endpoint_BytesToEPSizeMask(Size)));
                        }
 
index 787244b..196eb07 100644 (file)
@@ -72,7 +72,7 @@ bool Pipe_ConfigurePipe(const uint8_t Address,
        if (Type == EP_TYPE_CONTROL)
          Token = PIPE_TOKEN_SETUP;
 
-       USB_Pipe_FIFOPos[Number]     = &AVR32_USBB_SLAVE[Number * 0x10000];
+       USB_Pipe_FIFOPos[Number]     = &AVR32_USBB_SLAVE[Number * PIPE_HSB_ADDRESS_SPACE_SIZE];
 
 #if defined(ORDERED_EP_CONFIG)
        Pipe_SelectPipe(Number);