# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.633   -> 1.634  
#	drivers/usb/hid-core.c	1.13    -> 1.14   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/08/29	nahshon@actcom.co.il	1.634
# [PATCH] USB keyboards (patch)
# 
# The attached patch is required to use some (buggy?)
# USB keyboards. IMHO it should not cause new problems
# with other HID devices (though, testing with hardware that
# I do not have is a good idea).
# 
# I'm using it with recent 2.4 kernels for some time now.
# 
# Just removing the call to usb_set_idle also works (but
# it is less efficient).
# 
# The 2.5 kernels do not need this changes - they already call
# the equivalent of usb_set_idle (only for input reports) after
# reading the first report.
# --------------------------------------------
#
diff -Nru a/drivers/usb/hid-core.c b/drivers/usb/hid-core.c
--- a/drivers/usb/hid-core.c	Thu Aug 29 13:54:19 2002
+++ b/drivers/usb/hid-core.c	Thu Aug 29 13:54:19 2002
@@ -1065,8 +1065,8 @@
 			list = report_enum->report_list.next;
 			while (list != &report_enum->report_list) {
 				report = (struct hid_report *) list;
-				usb_set_idle(hid->dev, hid->ifnum, 0, report->id);
 				hid_read_report(hid, report);
+				usb_set_idle(hid->dev, hid->ifnum, 0, report->id);
 				list = list->next;
 			}
 		}
