You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


[EMAIL PROTECTED], 2002-07-14 20:15:59+02:00, [EMAIL PROTECTED]
   Get rid of #ifdefs in hid-core again. (For you, Greg.) 
   Move the uref generation code from hid-core to hiddev to make things cleaner.


 drivers/usb/input/hid-core.c |   36 ++++------------------------------
 drivers/usb/input/hiddev.c   |   45 ++++++++++++++++++++++++++++++++++++++-----
 include/linux/hiddev.h       |    8 +++++--
 3 files changed, 51 insertions(+), 38 deletions(-)


diff -Nru a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
--- a/drivers/usb/input/hid-core.c      Sun Jul 14 20:17:56 2002
+++ b/drivers/usb/input/hid-core.c      Sun Jul 14 20:17:56 2002
@@ -740,22 +740,8 @@
        hid_dump_input(usage, value);
        if (hid->claimed & HID_CLAIMED_INPUT)
                hidinput_hid_event(hid, field, usage, value);
-#ifdef CONFIG_USB_HIDDEV
-       if (hid->claimed & HID_CLAIMED_HIDDEV) {
-               struct hiddev_usage_ref uref;
-               unsigned type = field->report_type;
-               uref.report_type = 
-                 (type == HID_INPUT_REPORT) ? HID_REPORT_TYPE_INPUT :
-                 ((type == HID_OUTPUT_REPORT) ? HID_REPORT_TYPE_OUTPUT : 
-                  ((type == HID_FEATURE_REPORT) ? HID_REPORT_TYPE_FEATURE:0));
-               uref.report_id = field->report->id;
-               uref.field_index = field->index;
-               uref.usage_index = (usage - field->usage);
-               uref.usage_code = usage->hid;
-               uref.value = value;
-               hiddev_hid_event(hid, &uref);
-       }
-#endif
+       if (hid->claimed & HID_CLAIMED_HIDDEV)
+               hiddev_hid_event(hid, field, usage, value);
 }
 
 /*
@@ -851,27 +837,15 @@
                return -1;
        }
 
-#ifdef CONFIG_USB_HIDDEV
-       /* Notify listeners that a report has been received */
-       if (hid->claimed & HID_CLAIMED_HIDDEV) {
-               struct hiddev_usage_ref uref;
-               memset(&uref, 0, sizeof(uref));
-               uref.report_type = 
-                 (type == HID_INPUT_REPORT) ? HID_REPORT_TYPE_INPUT :
-                 ((type == HID_OUTPUT_REPORT) ? HID_REPORT_TYPE_OUTPUT : 
-                  ((type == HID_FEATURE_REPORT) ? HID_REPORT_TYPE_FEATURE:0));
-               uref.report_id = report->id;
-               uref.field_index = HID_FIELD_INDEX_NONE;
-               hiddev_hid_event(hid, &uref);
-       }
-#endif
-
        size = ((report->size - 1) >> 3) + 1;
 
        if (len < size) {
                dbg("report %d is too short, (%d < %d)", report->id, len, size);
                return -1;
        }
+
+       if (hid->claimed & HID_CLAIMED_HIDDEV)
+               hiddev_report_event(hid, report);
 
        for (n = 0; n < report->maxfield; n++)
                hid_input_field(hid, report->field[n], data);
diff -Nru a/drivers/usb/input/hiddev.c b/drivers/usb/input/hiddev.c
--- a/drivers/usb/input/hiddev.c        Sun Jul 14 20:17:56 2002
+++ b/drivers/usb/input/hiddev.c        Sun Jul 14 20:17:56 2002
@@ -152,11 +152,8 @@
        return NULL;
 }
 
-/*
- * This is where hid.c calls into hiddev to pass an event that occurred over
- * the interrupt pipe
- */
-void hiddev_hid_event(struct hid_device *hid, struct hiddev_usage_ref *uref)
+static void hiddev_send_event(struct hid_device *hid,
+                             struct hiddev_usage_ref *uref)
 {
        struct hiddev *hiddev = hid->hiddev;
        struct hiddev_list *list = hiddev->list;
@@ -176,6 +173,44 @@
        wake_up_interruptible(&hiddev->wait);
 }
 
+/*
+ * This is where hid.c calls into hiddev to pass an event that occurred over
+ * the interrupt pipe
+ */
+void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
+                     struct hid_usage *usage, __s32 value)
+{
+       unsigned type = field->report_type;
+       struct hiddev_usage_ref uref;
+
+       uref.report_type = 
+         (type == HID_INPUT_REPORT) ? HID_REPORT_TYPE_INPUT :
+         ((type == HID_OUTPUT_REPORT) ? HID_REPORT_TYPE_OUTPUT : 
+          ((type == HID_FEATURE_REPORT) ? HID_REPORT_TYPE_FEATURE:0));
+       uref.report_id = field->report->id;
+       uref.field_index = field->index;
+       uref.usage_index = (usage - field->usage);
+       uref.usage_code = usage->hid;
+       uref.value = value;
+
+       hiddev_send_event(hid, &uref);
+}
+
+
+void hiddev_report_event(struct hid_device *hid, struct hid_report *report)
+{
+       unsigned type = report->type;
+       struct hiddev_usage_ref uref;
+
+       memset(&uref, 0, sizeof(uref));
+       uref.report_type = 
+         (type == HID_INPUT_REPORT) ? HID_REPORT_TYPE_INPUT :
+         ((type == HID_OUTPUT_REPORT) ? HID_REPORT_TYPE_OUTPUT : 
+          ((type == HID_FEATURE_REPORT) ? HID_REPORT_TYPE_FEATURE:0));
+       uref.report_id = report->id;
+
+       hiddev_send_event(hid, &uref);
+}
 /*
  * fasync file op
  */
diff -Nru a/include/linux/hiddev.h b/include/linux/hiddev.h
--- a/include/linux/hiddev.h    Sun Jul 14 20:17:56 2002
+++ b/include/linux/hiddev.h    Sun Jul 14 20:17:56 2002
@@ -193,13 +193,17 @@
 #ifdef CONFIG_USB_HIDDEV
 int hiddev_connect(struct hid_device *);
 void hiddev_disconnect(struct hid_device *);
-void hiddev_hid_event(struct hid_device *, struct hiddev_usage_ref *ref);
+void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
+                     struct hid_usage *usage, __s32 value);
+void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
 int __init hiddev_init(void);
 void __exit hiddev_exit(void);
 #else
 static inline void *hiddev_connect(struct hid_device *hid) { return NULL; }
 static inline void hiddev_disconnect(struct hid_device *hid) { }
-static inline void hiddev_event(struct hid_device *hid, unsigned int usage, int 
value) { }
+static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
+                     struct hid_usage *usage, __s32 value) { }
+static inline void hiddev_report_event(struct hid_device *hid, struct hid_report 
+*report) { }
 static inline int hiddev_init(void) { return 0; }
 static inline void hiddev_exit(void) { }
 #endif

===================================================================


This BitKeeper patch contains the following changesets:
+
## Wrapped with gzip_uu ##


begin 664 bkpatch30786
M'XL(`%3`,3T``]U8:6_;.!#];/Z*`0H4<1K+)"7J<.!LNXG;!MMN@FRRP`(%
M#%FB+&UL*="1]%#_^PXI.S[JN$Y3H,`Z"421,^2\X7L<.L_@JI!YKW6;_5O*
M(";/X&U6E+U6>9=,DG%<&E5P9P2?L?\BR["_&V=3V9U9=T?7W:H8=;@A"%J<
M^V40PZW,BUZ+&>9]3_GI1O9:%X,W5^]>71#2[\-Q[*=C^9<LH=\GH^N7824G
MQG6>^;&1Y>/Z?KCFE#+&N*"FL)FHN6N:5LUL.@JQ&7+'BT:V1\:Y'+]LW(-L
MNNK.J<,X-ZDM1&T)9KOD!)AAVRY0WJ5.EUG`:8^)GO!>4-ZC%&;@7JZE`%Z8
MT*'D=WAZO,<D`'B#Z/,DA"R"9TD4RJB`)(4X"3M!EDOPQWZ2&K#W.LOA4U8=
MP!L$:;1!N;[/;B64L80JEQ&,92ISOTRR%((LE!#EV70Q3YFI=BAO56OJ7RO'
M)!T7$$RDCXX&^0,LQW$H.5]L"^D\\D,(]2DYVI";)`TF52B[DR2M/G:;4(QX
MD2B+"LNK&76$79N,^BQT3,>4(I+">F@KMDRJMMMB+A.65=O4\S8'%>:)HJDB
M;W>>*2-8#LKCM+:XY[`:_T8T<EP914R8SH/\6)DT26^J<FWJ16AF;0O&O%U"
M4\!6`V-VS87#G-H=<<JD(WV+FWX4>8\+['[BY;`$]X2C%;H-S&;1/B6G9!YZ
M415RUUQRYJ"P14TM9G&M:M-;%[5E?D_4`CHF^VFJWB#J+4+>KN/O*S>`LW3R
M"7)YD^4E^//&PM&/2IE#4L*-7Q0RU&M-9#HN8PAB&5PK\3=4/(-.?J=_4<SG
M6[?_!PZ'$\<R@=GDU!$N<-)*(MA3$QX%$S^98F#/X>WIR?#XW:O3]X.3(;9/
M!G^W2:O5X!CB8RAO95HJKP.($CG!1U7X8WD`M_ZDDNU#<N+BB<$$.74="TSR
MX?'+-/E;7JGIP<D?U(36T4Z*>(24=]/#BH3G:C!18%2K@=N/5X-%H2-^FAHT
MO]>Y_4!Y4E1LCI]=J*BA_P@1F1"`%&'"0QX6)8848#90L3,*%#*=4ZTH\RHH
MU<`01Y)`PK[B!-*E!?JS,%">FHU#!79?06[C(HX+IDNZ^P3VX3).L,`7<!=+
MA(T^R)K`GTQ4U5]1NI(J^"GH(%"Q?@E9$%1YCOS%?.9J,J5C=)-Y7MV@N),;
MB;U=L@QD(9D'<"R%/]2"@OU&5^1;?`TX!-8H;C@L3#[3'?E"6E5:).-4G2]X
MTX-^H\_.T4Q.JO.0M![*EDK6H5*K:AA+/C@1P4CVFG9?2_?TS_.KR^'%X/SL
MXK(-O^F^YFUX^<_YH!F'GO9;<3R[NMSNV1A`3Z^YYOQZ\.KRZF*PQ7MFT:-M
M/"M6D.".K"6D<Y2$<R,],$S24'Y<F.G7N463J+G%7K,1G;FI?FVOVNKBT6].
MQ\Y1O%A,;QB.Z*=.^;>DU\QXK@E\2+ZBS8<55JV<D#L0:U:1]F?GZ":RS).R
M*TVF<EK(<D_'>``4ETL^RRS:TS&O9_]_QJ-E`NVR?:IJ;;XK;ZY83[FLKW\+
MVW9'M_"'65BO:]-Q/4N7*^>;:F5]KUK9T.&_K%@UWR[6BM5FT#]4J#P;&-80
M?)B_Y&`__)G"Q]L9IUP!4@]S7GF3%!,EX5?`@R_P=4L83\2K9[__!XB^:Q?5
2M!^ZU+$BWR+_`1J%CCYW$0``
`
end
-- 
Vojtech Pavlik
SuSE Labs


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to