From 385ffb6de3cc85462be82f14eeb580d6b66bc5e7 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Thu, 9 Feb 2012 20:27:03 +0000
Subject: [PATCH] Fix XMEGA architecture not correctly resetting the device
 address and endpoints in response to a USB bus reset from the host.

---
 LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c
index 154e4d710..27ffb065a 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c
@@ -90,6 +90,9 @@ ISR(USB_BUSEVENT_vect)
 		USB_DeviceState                = DEVICE_STATE_Default;
 		USB_Device_ConfigurationNumber = 0;
 
+		USB_Device_SetDeviceAddress(0);
+
+		Endpoint_ClearEndpoints();
 		Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
 		                           ENDPOINT_DIR_OUT, USB_Device_ControlEndpointSize,
 		                           ENDPOINT_BANK_SINGLE);
-- 
GitLab