From 7e86387958555c489ec8a397b463c437be24e1fd Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Fri, 4 Dec 2009 02:06:38 +0000 Subject: Fix double oops -- Host mode settle delay was still being ignored due to inverted logic, HID Parser was assigning the usage Min/Max usage value to the report item's collection path rather than the report item itself. --- LUFA/Drivers/USB/Class/Host/HIDParser.c | 6 +++--- LUFA/Drivers/USB/LowLevel/Host.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'LUFA/Drivers') diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.c b/LUFA/Drivers/USB/Class/Host/HIDParser.c index 3c39e9685..5b295edc4 100644 --- a/LUFA/Drivers/USB/Class/Host/HIDParser.c +++ b/LUFA/Drivers/USB/Class/Host/HIDParser.c @@ -194,7 +194,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID for (uint8_t i = 0; i < UsageListSize; i++) UsageList[i] = UsageList[i + 1]; - + UsageListSize--; } else if (UsageMinMax.Minimum <= UsageMinMax.Maximum) @@ -235,9 +235,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, uint16_t ReportSize, HID } else if (UsageMinMax.Minimum <= UsageMinMax.Maximum) { - CurrCollectionPath->Usage.Usage = UsageMinMax.Minimum++; + NewReportItem.Attributes.Usage.Usage = UsageMinMax.Minimum++; } - + uint8_t ItemTag = (HIDReportItem & TAG_MASK); if (ItemTag == TAG_MAIN_INPUT) diff --git a/LUFA/Drivers/USB/LowLevel/Host.c b/LUFA/Drivers/USB/LowLevel/Host.c index b83c51404..98185a487 100644 --- a/LUFA/Drivers/USB/LowLevel/Host.c +++ b/LUFA/Drivers/USB/LowLevel/Host.c @@ -66,7 +66,7 @@ void USB_Host_ProcessNextHostState(void) USB_HostState = HOST_STATE_Powered_WaitForDeviceSettle; break; case HOST_STATE_Powered_WaitForDeviceSettle: - if (!(WaitMSRemaining--)) + if (WaitMSRemaining--) { _delay_ms(1); break; -- cgit v1.2.3