From 665fe11f128b95874befdd59492379a0f5d8105e Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Thu, 27 Aug 2009 06:36:01 +0000
Subject: [PATCH] Fixed Device mode HID Class driver always sending IN reports,
 even when no data is to be reported.

---
 LUFA/Drivers/USB/Class/Device/HID.c | 6 +++---
 LUFA/ManPages/ChangeLog.txt         | 1 +
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/LUFA/Drivers/USB/Class/Device/HID.c b/LUFA/Drivers/USB/Class/Device/HID.c
index 0cbd50afc..b44d4db63 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.c
+++ b/LUFA/Drivers/USB/Class/Device/HID.c
@@ -168,12 +168,12 @@ void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
 			HIDInterfaceInfo->State.IdleMSRemaining = HIDInterfaceInfo->State.IdleCount;
 
 			if (ReportID)
-			  Endpoint_Write_Stream_LE(&ReportID, sizeof(ReportID), NO_STREAM_CALLBACK);
+			  Endpoint_Write_Byte(ReportID);
 
 			Endpoint_Write_Stream_LE(ReportINData, ReportINSize, NO_STREAM_CALLBACK);
+			
+			Endpoint_ClearIN();
 		}
-		
-		Endpoint_ClearIN();
 	}
 }
 
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 61485a0dd..42b78ef0f 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -39,6 +39,7 @@
   *  - Fixed invalid data being returned when a GetStatus request is issued in Device mode with an unhandled data recipient
   *  - Added hardware USART receive interrupt and software buffering to the Benito project to ensure received data is not
   *    missed or corrupted
+  *  - Fixed Device mode HID Class driver always sending IN packets, even when nothing to report
   *
   *
   *  \section Sec_ChangeLog090810 Version 090810
-- 
GitLab