aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2012-02-09 20:27:03 +0000
committerDean Camera <dean@fourwalledcubicle.com>2012-02-09 20:27:03 +0000
commit385ffb6de3cc85462be82f14eeb580d6b66bc5e7 (patch)
treee2f0cb073c17d0dc51dd7ff9bb57c9fbafcaca48 /LUFA
parenta2d18e46f8c30391cf3c06f1f93c50cb24d5e1ae (diff)
downloadlufa-385ffb6de3cc85462be82f14eeb580d6b66bc5e7.tar.gz
lufa-385ffb6de3cc85462be82f14eeb580d6b66bc5e7.tar.bz2
lufa-385ffb6de3cc85462be82f14eeb580d6b66bc5e7.zip
Fix XMEGA architecture not correctly resetting the device address and endpoints in response to a USB bus reset from the host.
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c3
1 files changed, 3 insertions, 0 deletions
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);