From 544027da185fbfb51461460c607f956ccee9e54b Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sat, 9 Jun 2012 19:47:14 +0000
Subject: [PATCH] Fix RESET_TOGGLES_LIBUSB_COMPAT option not being applied in
 the AVRISP-MKII descriptors.

---
 Projects/AVRISP-MKII/AVRISPDescriptors.c | 6 +++++-
 Projects/AVRISP-MKII/AVRISPDescriptors.h | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/Projects/AVRISP-MKII/AVRISPDescriptors.c b/Projects/AVRISP-MKII/AVRISPDescriptors.c
index f3381e121..ab30c0eaf 100644
--- a/Projects/AVRISP-MKII/AVRISPDescriptors.c
+++ b/Projects/AVRISP-MKII/AVRISPDescriptors.c
@@ -38,6 +38,7 @@
 #include "AVRISPDescriptors.h"
 
 #if defined(RESET_TOGGLES_LIBUSB_COMPAT) || defined(__DOXYGEN__)
+	/** Indicates if an external reset has ocurred and the compatibility mode needs to be altered */
 	static bool AVRISP_NeedCompatibilitySwitch ATTR_NO_INIT;
 
 	/** Current AVRISP data IN endpoint address. */
@@ -207,7 +208,8 @@ uint16_t AVRISP_GetDescriptor(const uint16_t wValue,
 			break;
 		case DTYPE_Configuration:
 			*DescriptorMemorySpace = MEMSPACE_RAM;
-			#if defined(RESET_TOGGLES_LIBUSB_COMPAT)			
+			#if defined(RESET_TOGGLES_LIBUSB_COMPAT)
+				/* Update the configuration descriptor with the current endpoint address */
 				AVRISP_ConfigurationDescriptor.AVRISP_DataInEndpoint.EndpointAddress = AVRISP_CurrDataINEndpointAddress;
 			#endif
 
@@ -307,5 +309,7 @@ void UpdateCurrentCompatibilityMode(void)
 			}
 			break;
 	}
+	
+	Delay_MS(500);
 }
 #endif
diff --git a/Projects/AVRISP-MKII/AVRISPDescriptors.h b/Projects/AVRISP-MKII/AVRISPDescriptors.h
index 2779e0839..a14515d5e 100644
--- a/Projects/AVRISP-MKII/AVRISPDescriptors.h
+++ b/Projects/AVRISP-MKII/AVRISPDescriptors.h
@@ -41,6 +41,8 @@
 
 		#include <LUFA/Drivers/USB/USB.h>
 		#include <LUFA/Drivers/Board/LEDs.h>
+		
+		#include "Config/AppConfig.h"
 
 	/* Preprocessor Checks: */
 		#if defined(LIBUSB_DRIVER_COMPAT) && defined(RESET_TOGGLES_LIBUSB_COMPAT)
-- 
GitLab