From 59ed10273c4f37079564d08a51bea2af1c10b96b Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Tue, 24 Nov 2009 08:54:41 +0000
Subject: [PATCH] Fixed host state machine not enabling Auto VBUS mode when
 HOST_DEVICE_SETTLE_DELAY_MS is set to zero.

---
 LUFA/Drivers/USB/LowLevel/Host.c | 11 ++++++-----
 LUFA/ManPages/ChangeLog.txt      |  1 +
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/LUFA/Drivers/USB/LowLevel/Host.c b/LUFA/Drivers/USB/LowLevel/Host.c
index 9186f1c79..1e22ffcb7 100644
--- a/LUFA/Drivers/USB/LowLevel/Host.c
+++ b/LUFA/Drivers/USB/LowLevel/Host.c
@@ -67,9 +67,13 @@ void USB_Host_ProcessNextHostState(void)
 			break;
 		case HOST_STATE_Powered_WaitForDeviceSettle:
 			#if HOST_DEVICE_SETTLE_DELAY_MS > 0
-			_delay_ms(1);
-
 			if (!(WaitMSRemaining--))
+			{
+				_delay_ms(1);
+				break;
+			}
+			else
+			#endif
 			{
 				USB_Host_VBUS_Manual_Off();
 
@@ -79,9 +83,6 @@ void USB_Host_ProcessNextHostState(void)
 				
 				USB_HostState = HOST_STATE_Powered_WaitForConnect;
 			}
-			#else
-			USB_HostState = HOST_STATE_Powered_WaitForConnect;			
-			#endif
 			
 			break;
 		case HOST_STATE_Powered_WaitForConnect:		
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 5cb786296..5dc83cc65 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -27,6 +27,7 @@
   *  - Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions
   *  - Fixed broken USB_GetNextDescriptor() function causing the descriptor to jump ahead double the expected amount
   *  - Fixed Pipe_IsEndpointBound() not masking the given Endpoint Address against PIPE_EPNUM_MASK
+  *  - Fixed host state machine not enabling Auto VBUS mode when HOST_DEVICE_SETTLE_DELAY_MS is set to zero
   *
   *  \section Sec_ChangeLog091122 Version 091122
   *
-- 
GitLab