From 84ff878fd75b1d2861feb537bc32d7575c40dcda Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 19 Feb 2012 15:26:42 +0000
Subject: [PATCH] Fix errors uncovered by the new build test compile warnings;
 fix UC3 pipe configuration function broken, redundant function prototypes and
 unused parameters.

---
 LUFA/DoxygenPages/ChangeLog.txt                  | 1 +
 LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h          | 2 --
 LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c             | 2 ++
 LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h             | 2 +-
 LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h     | 4 +---
 LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h     | 1 +
 LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h | 4 ++--
 LUFA/Platform/XMEGA/ClockManagement.h            | 7 ++-----
 8 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 28f710df4..ea0bc6056 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -62,6 +62,7 @@
   *   - Fixed broken compilation of LUFA under C++ compilers when the Serial peripheral module header file is included in a C++ source file
   *   - Fixed missing semicolon in the UC3 architecture host pipe functions
   *   - Fixed failed compilation for the XMEGA architecture if USB_DEVICE_ONLY us not specified
+  *   - Fixed UC3 architecture ignoring the pipe size when Pipe_ConfigurePipe() is called
   *  - Library Applications:
   *   - Added reliability patches to the AVRISP-MKII Clone project's PDI/TPI protocols (thanks to Justin Mattair)
   *   - Fixed AVRISP-MKII Clone compile warning on AVR8 U4 targets even when NO_VTARGET_DETECT is enabled
diff --git a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
index 56697ff99..17c1e5c27 100644
--- a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
@@ -254,8 +254,6 @@
 			 */
 			bool TWI_ReceiveByte(uint8_t* const Byte,
 			                     const bool LastByte) ATTR_NON_NULL_PTR_ARG(1);
-			bool TWI_ReceiveByte(uint8_t* const Byte,
-			                     const bool LastByte);
 
 			/** High level function to perform a complete packet transfer over the TWI bus to the specified
 			 *  device.
diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
index 770f28545..dbd03c7cd 100644
--- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
@@ -58,6 +58,7 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
 	                                ((uint32_t)Type  << AVR32_USBB_PTYPE_OFFSET)  |
 	                                ((uint32_t)Token << AVR32_USBB_PTOKEN_OFFSET) |
 	                                ((uint32_t)Banks << AVR32_USBB_PBK_OFFSET)    |
+	                                Pipe_BytesToEPSizeMask(Size) |
 	                                ((EndpointNumber & PIPE_EPNUM_MASK) << AVR32_USBB_PEPNUM_OFFSET));
 
 	Pipe_SetInfiniteINRequests();
@@ -76,6 +77,7 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
 			              ((uint32_t)Type  << AVR32_USBB_PTYPE_OFFSET)  |
 			              ((uint32_t)Token << AVR32_USBB_PTOKEN_OFFSET) |
 			              ((uint32_t)Banks << AVR32_USBB_PBK_OFFSET)    |
+			              Pipe_BytesToEPSizeMask(Size) |
 			              ((EndpointNumber & PIPE_EPNUM_MASK) << AVR32_USBB_PEPNUM_OFFSET));
 		}
 		else
diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
index 7b9e7993b..1433d8ca2 100644
--- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
@@ -389,7 +389,7 @@
 			static inline bool Pipe_HasPipeInterrupted(const uint8_t PipeNumber) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
 			static inline bool Pipe_HasPipeInterrupted(const uint8_t PipeNumber)
 			{
-				return ((AVR32_USBB.uhint & (AVR32_USBB_P0INTES_MASK << USB_Pipe_SelectedPipe)) ? true : false);
+				return ((AVR32_USBB.uhint & (AVR32_USBB_P0INTES_MASK << PipeNumber)) ? true : false);
 			}
 
 			/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
diff --git a/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
index 37059c13d..c4dfab392 100644
--- a/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
@@ -350,15 +350,13 @@
 	#endif
 
 	/* Public Interface - May be used in end-application: */
-		/* ISR Prototypes: */
+		/* Function Prototypes: */
 			#if defined(__DOXYGEN__)
 				/** Interrupt service routine handler for the USB controller ISR group. This interrupt routine <b>must</b> be
 				 *  linked to the entire USB controller ISR vector group inside the AVR32's interrupt controller peripheral,
 				 *  using the user application's preferred USB controller driver.
 				 */
 				void USB_GEN_vect(void);
-			#else
-				ISR(USB_GEN_vect);
 			#endif
 
 	/* Disable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h
index aaac091a3..8cea092d0 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h
+++ b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h
@@ -429,6 +429,7 @@
 			static inline bool Endpoint_HasEndpointInterrupted(const uint8_t EndpointNumber) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
 			static inline bool Endpoint_HasEndpointInterrupted(const uint8_t EndpointNumber)
 			{
+				(void)EndpointNumber;
 				return 0; // TODO
 			}
 
diff --git a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h
index e40a1f54c..6a07626a5 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h
+++ b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h
@@ -73,10 +73,10 @@
 				switch (Interrupt)
 				{
 					case USB_INT_BUSEVENTI:
-						USB.INTCTRLA |=  USB_BUSEVIE_bm;
+						USB.INTCTRLA |= USB_BUSEVIE_bm;
 						return;
 					case USB_INT_SOFI:
-						USB.INTCTRLA |=  USB_SOFIE_bm;
+						USB.INTCTRLA |= USB_SOFIE_bm;
 						return;
 				}
 			}
diff --git a/LUFA/Platform/XMEGA/ClockManagement.h b/LUFA/Platform/XMEGA/ClockManagement.h
index 415c9871f..20fb6464c 100644
--- a/LUFA/Platform/XMEGA/ClockManagement.h
+++ b/LUFA/Platform/XMEGA/ClockManagement.h
@@ -323,14 +323,11 @@
 			 *  and ready for use before this function is called.
 			 *
 			 *  \param[in] Source      Clock source for the CPU core, a value from \ref XMEGA_System_ClockSource_t.
-			 *  \param[in] SourceFreq  Frequency of the CPU core's clock source, in Hz.
 			 *
 			 *  \return Boolean \c true if the CPU core clock was sucessfully altered, \c false if invalid parameters specified.
 			 */
-			static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source,
-			                                              const uint32_t SourceFreq) ATTR_ALWAYS_INLINE;
-			static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source,
-			                                              const uint32_t SourceFreq)
+			static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source) ATTR_ALWAYS_INLINE;
+			static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source)
 			{
 				uint8_t ClockSourceMask = 0;
 
-- 
GitLab