From 0d5baf9bb3e88ebcbc53cc9a71566582d585f7dd Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Wed, 13 May 2009 22:40:08 +0000
Subject: [PATCH] Fixed Device Mode not handling Set Feature and Clear Feature
 Chapter 9 requests that are addressed to the device (thanks to Brian
 Dickman).

---
 LUFA/ChangeLog.txt                      | 1 +
 LUFA/Drivers/USB/LowLevel/DevChapter9.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/LUFA/ChangeLog.txt b/LUFA/ChangeLog.txt
index 1833596f3..d86805578 100644
--- a/LUFA/ChangeLog.txt
+++ b/LUFA/ChangeLog.txt
@@ -13,6 +13,7 @@
   *  - Fixed RNDISEthernet not working under Linux due to Linux requiring an "optional" request which was unhandled
   *  - Fixed Mouse and Keyboard device demos not acting in accordance with the HID specification for idle periods (thanks to Brian Dickman)
   *  - Removed support for endpoint/pipe non-control interrupts; these did not act in the way users expected, and had many subtle issues
+  *  - Fixed Device Mode not handling Set Feature and Clear Feature Chapter 9 requests that are addressed to the device (thanks to Brian Dickman)
   *
   *
   *  \section Sec_ChangeLog090510 Version 090510
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.c b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
index 6ecadb00d..785d10fac 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.c
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.c
@@ -62,7 +62,8 @@ void USB_Device_ProcessControlPacket(void)
 			break;
 		case REQ_ClearFeature:
 		case REQ_SetFeature:
-			if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_ENDPOINT))
+			if ((bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) ||
+			    (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_ENDPOINT)))
 			{
 				USB_Device_ClearSetFeature();
 				RequestHandled = true;
-- 
GitLab