From e4b3e3fc65c0f0bbb10047c159a4771d6359e9b6 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sat, 5 Mar 2011 16:36:57 +0000
Subject: Fix UC3B architecture compile errors and ensure the architecture can
 be compiled with no special makefile tokens defined.

---
 LUFA/Common/Common.h                   |  2 ++
 LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c |  4 ++--
 LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h | 10 +++++-----
 3 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 147ae8ebc..da4b1ddc8 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -140,6 +140,8 @@
 			#define _delay_ms(x)
 			#define memcmp_P(...)            memcmp(__VA_ARGS__)
 			#define memcpy_P(...)            memcpy(__VA_ARGS__)
+			
+			#define USE_RAM_DESCRIPTORS
 		#endif
 
 	/* Public Interface - May be used in end-application: */
diff --git a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c b/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c
index 51f4d5eb7..d20926a86 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c
+++ b/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c
@@ -56,7 +56,7 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
 	                                ((uint32_t)Token << AVR32_USBB_PTOKEN_OFFSET) |
 	                                ((uint32_t)Banks << AVR32_USBB_PBK_OFFSET)    |
 	                                ((EndpointNumber & PIPE_EPNUM_MASK) << AVR32_USBB_PEPNUM_OFFSET));
-	USB_PipeFIFOPos[PNum]        = &AVR32_USBB_SLAVE[PNum * 0x10000];
+	USB_PipeFIFOPos[Number]      = &AVR32_USBB_SLAVE[Number * 0x10000];
 
 	Pipe_SetInfiniteINRequests();
 
@@ -70,7 +70,7 @@ void Pipe_ClearPipes(void)
 		Pipe_SelectPipe(PNum);
 		(&AVR32_USBB.upcfg0)[PNum]    = 0;
 		(&AVR32_USBB.upcon0clr)[PNum] = 0xFFFFFFFF;
-		USB_PipeFIFOPos[PNum]         = &AVR32_USBB_SLAVE[EPNum * 0x10000];
+		USB_PipeFIFOPos[PNum]         = &AVR32_USBB_SLAVE[PNum * 0x10000];
 		Pipe_DisablePipe();
 	}
 }
diff --git a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h b/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h
index 173b199f4..ee0b1654b 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h
+++ b/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h
@@ -247,7 +247,7 @@
 			{
 				AVR32_USBB.uprst |=  (AVR32_USBB_PRST0_MASK << PipeNumber);
 				AVR32_USBB.uprst &= ~(AVR32_USBB_PRST0_MASK << PipeNumber);
-				USB_PipeFIFOPos[Pipe_SelectedPipe] = &AVR32_USBB_SLAVE[Pipe_SelectedPipe * 0x10000];
+				USB_PipeFIFOPos[USB_SelectedPipe] = &AVR32_USBB_SLAVE[USB_SelectedPipe * 0x10000];
 			}
 
 			/** Enables the currently selected pipe so that data can be sent and received through it to and from
@@ -520,7 +520,7 @@
 			static inline void Pipe_ClearSETUP(void)
 			{
 				(&AVR32_USBB.UPSTA0CLR)[USB_SelectedPipe].txstpic = true;
-				USB_PipeFIFOPos[Pipe_SelectedPipe] = &AVR32_USBB_SLAVE[Pipe_SelectedPipe * 0x10000];
+				USB_PipeFIFOPos[USB_SelectedPipe] = &AVR32_USBB_SLAVE[USB_SelectedPipe * 0x10000];
 			}
 
 			/** Acknowledges the reception of a setup IN request from the attached device on the currently selected
@@ -533,7 +533,7 @@
 			{
 				(&AVR32_USBB.UPSTA0CLR)[USB_SelectedPipe].rxinic   = true;
 				(&AVR32_USBB.UPCON0CLR)[USB_SelectedPipe].fifoconc = true;
-				USB_PipeFIFOPos[Pipe_SelectedPipe] = &AVR32_USBB_SLAVE[Pipe_SelectedPipe * 0x10000];
+				USB_PipeFIFOPos[USB_SelectedPipe] = &AVR32_USBB_SLAVE[USB_SelectedPipe * 0x10000];
 			}
 
 			/** Sends the currently selected pipe's contents to the device as an OUT packet on the selected pipe, freeing
@@ -546,7 +546,7 @@
 			{
 				(&AVR32_USBB.UPSTA0CLR)[USB_SelectedPipe].txoutic  = true;
 				(&AVR32_USBB.UPCON0CLR)[USB_SelectedPipe].fifoconc = true;
-				USB_PipeFIFOPos[Pipe_SelectedPipe] = &AVR32_USBB_SLAVE[Pipe_SelectedPipe * 0x10000];
+				USB_PipeFIFOPos[USB_SelectedPipe] = &AVR32_USBB_SLAVE[USB_SelectedPipe * 0x10000];
 			}
 
 			/** Determines if the device sent a NAK (Negative Acknowledge) in response to the last sent packet on
@@ -598,7 +598,7 @@
 			static inline void Pipe_ClearStall(void)
 			{
 				(&AVR32_USBB.UPSTA0CLR)[USB_SelectedPipe].rxstalldic = true;
-				USB_PipeFIFOPos[Pipe_SelectedPipe] = &AVR32_USBB_SLAVE[Pipe_SelectedPipe * 0x10000];
+				USB_PipeFIFOPos[USB_SelectedPipe] = &AVR32_USBB_SLAVE[USB_SelectedPipe * 0x10000];
 			}
 
 			/** Reads one byte from the currently selected pipe's bank, for OUT direction pipes.
-- 
cgit v1.2.3