1Gv579D3tQ8fSZo9jqX0g7 changeset

Changeset376664333234 (b)
ParentNone (a)
ab
0+Index: uhidev.c
0+===================================================================
0+RCS file: /cvs/src/sys/dev/usb/uhidev.c,v
0+retrieving revision 1.37
0+diff -u -r1.37 uhidev.c
0+--- uhidev.c    23 Nov 2009 19:26:54 -0000      1.37
0++++ uhidev.c    20 Mar 2010 13:14:26 -0000
0+@@ -119,7 +119,7 @@
0+        usb_endpoint_descriptor_t *ed;
0+        struct uhidev_attach_arg uha;
0+        struct uhidev *dev;
0+-       int size, nrepid, repid, repsz;
0++       int maxinpktsize, size, nrepid, repid, repsz;
0+        int repsizes[256];
0+        int i;
0+        void *desc;
0+@@ -139,6 +139,7 @@
0+                (void)usbd_set_protocol(iface, 1);
0+ #endif
0+ 
0++    maxinpktsize = 0;
0+        sc->sc_iep_addr = sc->sc_oep_addr = -1;
0+        for (i = 0; i < id->bNumEndpoints; i++) {
0+                ed = usbd_interface2endpoint_descriptor(iface, i);
0+@@ -160,6 +161,7 @@
0+ 
0+                if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN &&
0+                    (ed->bmAttributes & UE_XFERTYPE) == UE_INTERRUPT) {
0++            maxinpktsize = UGETW(ed->wMaxPacketSize);
0+                        sc->sc_iep_addr = ed->bEndpointAddress;
0+                } else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT &&
0+                    (ed->bmAttributes & UE_XFERTYPE) == UE_INTERRUPT) {
0+@@ -243,9 +245,11 @@
0+                printf("%s: no memory\n", sc->sc_dev.dv_xname);
0+                return;
0+        }
0+-       sc->sc_nrepid = nrepid;
0+-       sc->sc_isize = 0;
0+ 
0++    /* Just request max packet size for the interrupt pipe */
0++    sc->sc_isize = maxinpktsize;
0++       sc->sc_nrepid = nrepid;
0++       
0+        usbd_add_drv_event(USB_EVENT_DRIVER_ATTACH, sc->sc_udev,
0+                           &sc->sc_dev);
0+ 
0+@@ -253,13 +257,9 @@
0+                repsz = hid_report_size(desc, size, hid_input, repid);
0+                DPRINTF(("uhidev_match: repid=%d, repsz=%d\n", repid, repsz));
0+                repsizes[repid] = repsz;
0+-               if (repsz > 0) {
0+-                       if (repsz > sc->sc_isize)
0+-                               sc->sc_isize = repsz;
0+-               }
0+        }
0+-       sc->sc_isize += nrepid != 1;    /* space for report ID */
0+-       DPRINTF(("uhidev_attach: isize=%d\n", sc->sc_isize));
0++
0++    DPRINTF(("uhidev_attach: isize=%d\n", sc->sc_isize));
0+ 
0+        uha.parent = sc;
0+        for (repid = 0; repid < nrepid; repid++) {
0+Index: ums.c
0+===================================================================
0+RCS file: /cvs/src/sys/dev/usb/ums.c,v
0+retrieving revision 1.31
0+diff -u -r1.31 ums.c
0+--- ums.c       13 Oct 2009 19:33:19 -0000      1.31
0++++ ums.c       20 Mar 2010 13:14:26 -0000
0+@@ -312,6 +312,17 @@
0+                sc->sc_loc_btn[2].pos = 2;
0+        }
0+ 
0++    if (uha->uaa->vendor == USB_VENDOR_MICROSOFT &&
0++           ((uha->uaa->product == USB_PRODUCT_MICROSOFT_24GHZ_XCVR10) ||
0++        (uha->uaa->product == USB_PRODUCT_MICROSOFT_24GHZ_XCVR20) ||
0++        (uha->uaa->product == USB_PRODUCT_MICROSOFT_24GHZ_XCVR50))) {
0++               if ((sc->flags & UMS_Z) && sc->sc_loc_z.pos == 0)
0++                       sc->sc_loc_z.pos = 24;
0++               if ((sc->flags & UMS_W) && sc->sc_loc_w.pos == 0)
0++                       sc->sc_loc_w.pos = sc->sc_loc_z.pos + 8;
0++       }
0++
0++
0+        printf(": %d button%s",
0+            sc->nbuttons, sc->nbuttons <= 1 ? "" : "s");
0+        switch (sc->flags & (UMS_Z | UMS_W)) {
0+Index: usbdevs
0+===================================================================
0+RCS file: /cvs/src/sys/dev/usb/usbdevs,v
0+retrieving revision 1.480
0+diff -u -r1.480 usbdevs
0+--- usbdevs     14 Mar 2010 22:44:56 -0000      1.480
0++++ usbdevs     20 Mar 2010 13:14:27 -0000
0+@@ -2550,6 +2550,10 @@
0+ product MICROSOFT WLNOTEBOOK3  0x00d2  Wireless Optical Mouse 3000 (Model 1049)
0+ product MICROSOFT WLNOTEBOOK2  0x00e1  Wireless Optical Mouse 3000 (Model 1056)
0+ product MICROSOFT XBOX360      0x0292  XBOX 360 WLAN
0++product MICROSOFT 24GHZ_XCVR10         0x071d  2.4GHz Transceiver V1.0
0++product MICROSOFT 24GHZ_XCVR20         0x071f  2.4GHz Transceiver V2.0
0++product MICROSOFT 24GHZ_XCVR50         0x074f  2.4GHz Transceiver V5.0
0++
0+ 
0+ /* Microtech products */
0+ product MICROTECH SCSIDB25     0x0004  SCSI-DB25
0+Index: usbdevs.h
0+===================================================================
0+RCS file: /cvs/src/sys/dev/usb/usbdevs.h,v
0+retrieving revision 1.490
0+diff -u -r1.490 usbdevs.h
0+--- usbdevs.h   14 Mar 2010 22:45:47 -0000      1.490
0++++ usbdevs.h   20 Mar 2010 13:14:29 -0000
0+@@ -1,4 +1,4 @@
0+-/*     $OpenBSD: usbdevs.h,v 1.490 2010/03/14 22:45:47 mk Exp $        */
0++/*     $OpenBSD$       */
0+ 
0+ /*
0+  * THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT.
0+@@ -2557,6 +2557,10 @@
0+ #define        USB_PRODUCT_MICROSOFT_WLNOTEBOOK3       0x00d2          /* Wireless Optical Mouse 3000 (Model 1049) */
0+ #define        USB_PRODUCT_MICROSOFT_WLNOTEBOOK2       0x00e1          /* Wireless Optical Mouse 3000 (Model 1056) */
0+ #define        USB_PRODUCT_MICROSOFT_XBOX360   0x0292          /* XBOX 360 WLAN */
0++#define        USB_PRODUCT_MICROSOFT_24GHZ_XCVR10      0x071d          /* 2.4GHz Transceiver V1.0 */
0++#define        USB_PRODUCT_MICROSOFT_24GHZ_XCVR20      0x071f          /* 2.4GHz Transceiver V2.0 */
0++#define        USB_PRODUCT_MICROSOFT_24GHZ_XCVR50      0x074f          /* 2.4GHz Transceiver V5.0 */
0++
0+ 
0+ /* Microtech products */
0+ #define        USB_PRODUCT_MICROTECH_SCSIDB25  0x0004          /* SCSI-DB25 */
0+Index: usbdevs_data.h
0+===================================================================
0+RCS file: /cvs/src/sys/dev/usb/usbdevs_data.h,v
0+retrieving revision 1.484
0+diff -u -r1.484 usbdevs_data.h
0+--- usbdevs_data.h      14 Mar 2010 22:45:47 -0000      1.484
0++++ usbdevs_data.h      20 Mar 2010 13:14:31 -0000
0+@@ -1,4 +1,4 @@
0+-/*     $OpenBSD: usbdevs_data.h,v 1.484 2010/03/14 22:45:47 mk Exp $   */
0++/*     $OpenBSD$       */
0+ 
0+ /*
0+  * THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT.
0+@@ -5952,6 +5952,18 @@
0+        {
0+            USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_XBOX360,
0+            "XBOX 360 WLAN",
0++       },
0++       {
0++           USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_24GHZ_XCVR10,
0++           "2.4GHz Transceiver V1.0",
0++       },
0++       {
0++           USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_24GHZ_XCVR20,
0++           "2.4GHz Transceiver V2.0",
0++       },
0++       {
0++           USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_24GHZ_XCVR50,
0++           "2.4GHz Transceiver V5.0",
0+        },
0+        {
0+            USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25,
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
--- Revision None
+++ Revision 376664333234
@@ -0,0 +1,161 @@
+Index: uhidev.c
+===================================================================
+RCS file: /cvs/src/sys/dev/usb/uhidev.c,v
+retrieving revision 1.37
+diff -u -r1.37 uhidev.c
+--- uhidev.c 23 Nov 2009 19:26:54 -0000 1.37
++++ uhidev.c 20 Mar 2010 13:14:26 -0000
+@@ -119,7 +119,7 @@
+ usb_endpoint_descriptor_t *ed;
+ struct uhidev_attach_arg uha;
+ struct uhidev *dev;
+- int size, nrepid, repid, repsz;
++ int maxinpktsize, size, nrepid, repid, repsz;
+ int repsizes[256];
+ int i;
+ void *desc;
+@@ -139,6 +139,7 @@
+ (void)usbd_set_protocol(iface, 1);
+ #endif
+
++ maxinpktsize = 0;
+ sc->sc_iep_addr = sc->sc_oep_addr = -1;
+ for (i = 0; i < id->bNumEndpoints; i++) {
+ ed = usbd_interface2endpoint_descriptor(iface, i);
+@@ -160,6 +161,7 @@
+
+ if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN &&
+ (ed->bmAttributes & UE_XFERTYPE) == UE_INTERRUPT) {
++ maxinpktsize = UGETW(ed->wMaxPacketSize);
+ sc->sc_iep_addr = ed->bEndpointAddress;
+ } else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT &&
+ (ed->bmAttributes & UE_XFERTYPE) == UE_INTERRUPT) {
+@@ -243,9 +245,11 @@
+ printf("%s: no memory\n", sc->sc_dev.dv_xname);
+ return;
+ }
+- sc->sc_nrepid = nrepid;
+- sc->sc_isize = 0;
+
++ /* Just request max packet size for the interrupt pipe */
++ sc->sc_isize = maxinpktsize;
++ sc->sc_nrepid = nrepid;
++
+ usbd_add_drv_event(USB_EVENT_DRIVER_ATTACH, sc->sc_udev,
+ &sc->sc_dev);
+
+@@ -253,13 +257,9 @@
+ repsz = hid_report_size(desc, size, hid_input, repid);
+ DPRINTF(("uhidev_match: repid=%d, repsz=%d\n", repid, repsz));
+ repsizes[repid] = repsz;
+- if (repsz > 0) {
+- if (repsz > sc->sc_isize)
+- sc->sc_isize = repsz;
+- }
+ }
+- sc->sc_isize += nrepid != 1; /* space for report ID */
+- DPRINTF(("uhidev_attach: isize=%d\n", sc->sc_isize));
++
++ DPRINTF(("uhidev_attach: isize=%d\n", sc->sc_isize));
+
+ uha.parent = sc;
+ for (repid = 0; repid < nrepid; repid++) {
+Index: ums.c
+===================================================================
+RCS file: /cvs/src/sys/dev/usb/ums.c,v
+retrieving revision 1.31
+diff -u -r1.31 ums.c
+--- ums.c 13 Oct 2009 19:33:19 -0000 1.31
++++ ums.c 20 Mar 2010 13:14:26 -0000
+@@ -312,6 +312,17 @@
+ sc->sc_loc_btn[2].pos = 2;
+ }
+
++ if (uha->uaa->vendor == USB_VENDOR_MICROSOFT &&
++ ((uha->uaa->product == USB_PRODUCT_MICROSOFT_24GHZ_XCVR10) ||
++ (uha->uaa->product == USB_PRODUCT_MICROSOFT_24GHZ_XCVR20) ||
++ (uha->uaa->product == USB_PRODUCT_MICROSOFT_24GHZ_XCVR50))) {
++ if ((sc->flags & UMS_Z) && sc->sc_loc_z.pos == 0)
++ sc->sc_loc_z.pos = 24;
++ if ((sc->flags & UMS_W) && sc->sc_loc_w.pos == 0)
++ sc->sc_loc_w.pos = sc->sc_loc_z.pos + 8;
++ }
++
++
+ printf(": %d button%s",
+ sc->nbuttons, sc->nbuttons <= 1 ? "" : "s");
+ switch (sc->flags & (UMS_Z | UMS_W)) {
+Index: usbdevs
+===================================================================
+RCS file: /cvs/src/sys/dev/usb/usbdevs,v
+retrieving revision 1.480
+diff -u -r1.480 usbdevs
+--- usbdevs 14 Mar 2010 22:44:56 -0000 1.480
++++ usbdevs 20 Mar 2010 13:14:27 -0000
+@@ -2550,6 +2550,10 @@
+ product MICROSOFT WLNOTEBOOK3 0x00d2 Wireless Optical Mouse 3000 (Model 1049)
+ product MICROSOFT WLNOTEBOOK2 0x00e1 Wireless Optical Mouse 3000 (Model 1056)
+ product MICROSOFT XBOX360 0x0292 XBOX 360 WLAN
++product MICROSOFT 24GHZ_XCVR10 0x071d 2.4GHz Transceiver V1.0
++product MICROSOFT 24GHZ_XCVR20 0x071f 2.4GHz Transceiver V2.0
++product MICROSOFT 24GHZ_XCVR50 0x074f 2.4GHz Transceiver V5.0
++
+
+ /* Microtech products */
+ product MICROTECH SCSIDB25 0x0004 SCSI-DB25
+Index: usbdevs.h
+===================================================================
+RCS file: /cvs/src/sys/dev/usb/usbdevs.h,v
+retrieving revision 1.490
+diff -u -r1.490 usbdevs.h
+--- usbdevs.h 14 Mar 2010 22:45:47 -0000 1.490
++++ usbdevs.h 20 Mar 2010 13:14:29 -0000
+@@ -1,4 +1,4 @@
+-/* $OpenBSD: usbdevs.h,v 1.490 2010/03/14 22:45:47 mk Exp $ */
++/* $OpenBSD$ */
+
+ /*
+ * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
+@@ -2557,6 +2557,10 @@
+ #define USB_PRODUCT_MICROSOFT_WLNOTEBOOK3 0x00d2 /* Wireless Optical Mouse 3000 (Model 1049) */
+ #define USB_PRODUCT_MICROSOFT_WLNOTEBOOK2 0x00e1 /* Wireless Optical Mouse 3000 (Model 1056) */
+ #define USB_PRODUCT_MICROSOFT_XBOX360 0x0292 /* XBOX 360 WLAN */
++#define USB_PRODUCT_MICROSOFT_24GHZ_XCVR10 0x071d /* 2.4GHz Transceiver V1.0 */
++#define USB_PRODUCT_MICROSOFT_24GHZ_XCVR20 0x071f /* 2.4GHz Transceiver V2.0 */
++#define USB_PRODUCT_MICROSOFT_24GHZ_XCVR50 0x074f /* 2.4GHz Transceiver V5.0 */
++
+
+ /* Microtech products */
+ #define USB_PRODUCT_MICROTECH_SCSIDB25 0x0004 /* SCSI-DB25 */
+Index: usbdevs_data.h
+===================================================================
+RCS file: /cvs/src/sys/dev/usb/usbdevs_data.h,v
+retrieving revision 1.484
+diff -u -r1.484 usbdevs_data.h
+--- usbdevs_data.h 14 Mar 2010 22:45:47 -0000 1.484
++++ usbdevs_data.h 20 Mar 2010 13:14:31 -0000
+@@ -1,4 +1,4 @@
+-/* $OpenBSD: usbdevs_data.h,v 1.484 2010/03/14 22:45:47 mk Exp $ */
++/* $OpenBSD$ */
+
+ /*
+ * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
+@@ -5952,6 +5952,18 @@
+ {
+ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_XBOX360,
+ "XBOX 360 WLAN",
++ },
++ {
++ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_24GHZ_XCVR10,
++ "2.4GHz Transceiver V1.0",
++ },
++ {
++ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_24GHZ_XCVR20,
++ "2.4GHz Transceiver V2.0",
++ },
++ {
++ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_24GHZ_XCVR50,
++ "2.4GHz Transceiver V5.0",
+ },
+ {
+ USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25,