Hi again Marcel and Jiri,
I've set up the hid-core.c to DEBUG mode... and it literally got pretty verbose...
At line 2114 we finally get the BUG message (I've attached the full dmesg also...) :
2104 drivers/usb/input/hid-core.c: report (size 8) (unnumbered)
2105 drivers/usb/input/hid-core.c: report 0 (size 8) = 00 00 00 00 00 00 00 00
2106 hid-debug: input Keyboard.00e0 = 0
2107 hid-debug: input Keyboard.00e1 = 0
2108 hid-debug: input Keyboard.00e2 = 0
2109 hid-debug: input Keyboard.00e3 = 0
2110 hid-debug: input Keyboard.00e4 = 0
2111 hid-debug: input Keyboard.00e5 = 0
2112 hid-debug: input Keyboard.00e6 = 0
2113 hid-debug: input Keyboard.00e7 = 0
2114 BUG: warning at drivers/usb/input/hid-core.c:797/implement()
2115 [<c0404c70>] dump_trace+0x69/0x1b6
2116 [<c0404dd5>] show_trace_log_lvl+0x18/0x2c
2117 [<c04053bc>] show_trace+0xf/0x11
2118 [<c04054b9>] dump_stack+0x15/0x17
2119 [<c0589a5b>] hid_output_report+0x1f8/0x2a3
2120 [<c0589b5b>] hid_submit_ctrl+0x55/0x214
2121 [<c0589ee7>] hid_submit_report+0x134/0x15f
2122 [<c058c955>] hiddev_ioctl+0x327/0x88a
2123 [<c0479198>] do_ioctl+0x4c/0x62
2124 [<c04793f8>] vfs_ioctl+0x24a/0x25c
2125 [<c0479456>] sys_ioctl+0x4c/0x66
2126 [<c0403de5>] sysenter_past_esp+0x56/0x79
2127 [<b7f8c410>] 0xb7f8c410
2128 =======================
2129 BUG: warning at drivers/usb/input/hid-core.c:797/implement()
2130 [<c0404c70>] dump_trace+0x69/0x1b6
2131 [<c0404dd5>] show_trace_log_lvl+0x18/0x2c
...
2157 [<b7f8c410>] 0xb7f8c410
2158 =======================
2159 drivers/usb/input/hid-core.c: submitting ctrl urb: Set_Report wValue=0x0210 wIndex=0x0000 wLength=7
2160 BUG: warning at drivers/usb/input/hid-core.c:797/implement()
2161 [<c0404c70>] dump_trace+0x69/0x1b6
...
2184 [<c0479198>] do_ioctl+0x4c/0x62
2185 [<c04793f8>] vfs_ioctl+0x24a/0x25c
2186 [<c0479456>] sys_ioctl+0x4c/0x66
2187 [<c0403de5>] sysenter_past_esp+0x56/0x79
2188 [<b7f8c410>] 0xb7f8c410
2189 =======================
2190 drivers/usb/input/hid-core.c: submitting ctrl urb: Set_Report wValue=0x0210 wIndex=0x0000 wLength=7
2191 drivers/usb/input/hid-core.c: report (size 8) (unnumbered)
2192 drivers/usb/input/hid-core.c: report 0 (size 8) = 00 00 00 00 00 00 00 00
2193 hid-debug: input Keyboard.00e0 = 0
2194 hid-debug: input Keyboard.00e1 = 0
2195 hid-debug: input Keyboard.00e2 = 0
2196 hid-debug: input Keyboard.00e3 = 0
2197 hid-debug: input Keyboard.00e4 = 0
2198 hid-debug: input Keyboard.00e5 = 0
2199 hid-debug: input Keyboard.00e6 = 0
2200 hid-debug: input Keyboard.00e7 = 0
2201 drivers/usb/input/hid-core.c: report (size 7) (numbered)
2202 drivers/usb/input/hid-core.c: report 16 (size 6) = ff 80 80 01 00 00
2203 hid-debug: input Undefined.0001 = 1
2204 hid-debug: input c06a.8f60 = 1
2205 hid-debug: input c06a.8f60 = 1
2206 hid-debug: input ff00.0001 = 1
2207 BUG: warning at drivers/usb/input/hid-core.c:797/implement()
2208 [<c0404c70>] dump_trace+0x69/0x1b6
2209 [<c0404dd5>] show_trace_log_lvl+0x18/0x2c
2210 [<c04053bc>] show_trace+0xf/0x11
2211 [<c04054b9>] dump_stack+0x15/0x17
2212 [<c0589a5b>] hid_output_report+0x1f8/0x2a3
2213 [<c0589b5b>] hid_submit_ctrl+0x55/0x214
2214 [<c0589ee7>] hid_submit_report+0x134/0x15f
2215 [<c058c955>] hiddev_ioctl+0x327/0x88a
2216 [<c0479198>] do_ioctl+0x4c/0x62
2217 [<c04793f8>] vfs_ioctl+0x24a/0x25c
2218 [<c0479456>] sys_ioctl+0x4c/0x66
2219 [<c0403de5>] sysenter_past_esp+0x56/0x79
2220 [<b7f8c410>] 0xb7f8c410
2221 =======================
2222 BUG: warning at drivers/usb/input/hid-core.c:797/implement()
...
2249 [<c0403de5>] sysenter_past_esp+0x56/0x79
2250 [<b7f8c410>] 0xb7f8c410
2251 =======================
2252 drivers/usb/input/hid-core.c: submitting ctrl urb: Set_Report wValue=0x0210 wIndex=0x0000 wLength=7
2253 drivers/usb/input/hid-core.c: report (size 7) (numbered)
2254 drivers/usb/input/hid-core.c: report 16 (size 6) = ff 80 00 00 30 00
2255 hid-debug: input ff00.0001 = 0
2256 hid-debug: input Button.0001 = 1
2257 drivers/usb/input/hid-core.c: report (size 7) (numbered)
2258 drivers/usb/input/hid-core.c: report 16 (size 6) = ff 81 80 01 00 00
2259 hid-debug: input ff00.0001 = 1
2260 hid-debug: input Button.0001 = 0
2261 Bluetooth: Core ver 2.11
2262 NET: Registered protocol family 31
2263 Bluetooth: HCI device and connection manager initialized
2264 Bluetooth: HCI socket layer initialized
2265 Bluetooth: L2CAP ver 2.8
2266 Bluetooth: L2CAP socket layer initialized
2267 Bluetooth: RFCOMM socket layer initialized
2268 Bluetooth: RFCOMM TTY layer initialized
2269 Bluetooth: RFCOMM ver 1.8
2270 usb 2-2.1: new full speed USB device using uhci_hcd and address 5
2271 drivers/usb/input/hid-core.c: report (size 8) (unnumbered)
2272 drivers/usb/input/hid-core.c: report 0 (size 8) = 00 00 00 00 00 00 00 00
2273 hid-debug: input Keyboard.00e0 = 0
2274 hid-debug: input Keyboard.00e1 = 0
2275 hid-debug: input Keyboard.00e2 = 0
2276 hid-debug: input Keyboard.00e3 = 0
2277 hid-debug: input Keyboard.00e4 = 0
2278 hid-debug: input Keyboard.00e5 = 0
2279 hid-debug: input Keyboard.00e6 = 0
2280 hid-debug: input Keyboard.00e7 = 0
2281 usb 2-2.1: configuration #1 chosen from 1 choice
2282 Bluetooth: HCI USB driver ver 2.9
2283 usbcore: registered new interface driver hci_usb
2284 drivers/usb/input/hid-core.c: report (size 7) (numbered)
2285 drivers/usb/input/hid-core.c: report 2 (size 6) = 00 00 00 00 00 00
2286 hid-debug: input Button.0001 = 0
2287 hid-debug: input Button.0002 = 0
2288 hid-debug: input Button.0003 = 0
2289 hid-debug: input Button.0004 = 0
2290 hid-debug: input Button.0005 = 0
2291 hid-debug: input Button.0006 = 0
2292 hid-debug: input Button.0007 = 0
2293 hid-debug: input Button.0008 = 0
2294 hid-debug: input GenericDesktop.X = 0
2295 hid-debug: input GenericDesktop.Y = 0
2296 hid-debug: input GenericDesktop.Wheel = 0
2297 hid-debug: input Consumer.HorizontalWheel = 0
2298 hid-debug: input Button.0009 = 0
2299 hid-debug: input Button.000a = 0
2300 hid-debug: input Button.000b = 0
2301 hid-debug: input Button.000c = 0
2302 drivers/usb/input/hid-core.c: report (size 8) (unnumbered)
2303 drivers/usb/input/hid-core.c: report 0 (size 8) = 00 00 00 00 00 00 00 00
2304 hid-debug: input Keyboard.00e0 = 0
2305 hid-debug: input Keyboard.00e1 = 0
2306 hid-debug: input Keyboard.00e2 = 0
2307 hid-debug: input Keyboard.00e3 = 0
2308 hid-debug: input Keyboard.00e4 = 0
2309 hid-debug: input Keyboard.00e5 = 0
2310 hid-debug: input Keyboard.00e6 = 0
2311 hid-debug: input Keyboard.00e7 = 0
2312 drivers/usb/input/hid-core.c: report (size 5) (numbered)
2313 drivers/usb/input/hid-core.c: report 3 (size 4) = 00 00 00 00
2314 drivers/usb/input/hid-core.c: report (size 7) (numbered)
2315 drivers/usb/input/hid-core.c: report 16 (size 6) = ff 44 01 00 00 00
2316 hid-debug: input 01a1.0109 = 1
2317 hid-debug: input c06a.8f60 = 0
2318 drivers/usb/input/hid-core.c: report (size 2) (numbered)
2319 drivers/usb/input/hid-core.c: report 4 (size 1) = 00
2320 drivers/usb/input/hid-core.c: report (size 8) (unnumbered)
2321 drivers/usb/input/hid-core.c: report 0 (size 8) = 00 00 00 00 00 00 00 00
2322 hid-debug: input Keyboard.00e0 = 0
2323 hid-debug: input Keyboard.00e1 = 0
2324 hid-debug: input Keyboard.00e2 = 0
2325 hid-debug: input Keyboard.00e3 = 0
2326 hid-debug: input Keyboard.00e4 = 0
2327 hid-debug: input Keyboard.00e5 = 0
2328 hid-debug: input Keyboard.00e6 = 0
2329 hid-debug: input Keyboard.00e7 = 0
2330 Bluetooth: HIDP (Human Interface Emulation) ver 1.1
2331 drivers/usb/input/hid-core.c: report (size 8) (unnumbered)
2332 drivers/usb/input/hid-core.c: report 0 (size 8) = 00 00 00 00 00 00 00 00
2333 hid-debug: input Keyboard.00e0 = 0
2334 hid-debug: input Keyboard.00e1 = 0
2335 hid-debug: input Keyboard.00e2 = 0
2336 hid-debug: input Keyboard.00e3 = 0
2337 hid-debug: input Keyboard.00e4 = 0
2338 hid-debug: input Keyboard.00e5 = 0
2339 hid-debug: input Keyboard.00e6 = 0
2340 hid-debug: input Keyboard.00e7 = 0
2341 drivers/usb/input/hid-core.c: report (size 8) (unnumbered)
2342 drivers/usb/input/hid-core.c: report 0 (size 8) = 00 00 00 00 00 00 00 00
2343 hid-debug: input Keyboard.00e0 = 0
2344 hid-debug: input Keyboard.00e1 = 0
2345 hid-debug: input Keyboard.00e2 = 0
2346 hid-debug: input Keyboard.00e3 = 0
2347 hid-debug: input Keyboard.00e4 = 0
2348 hid-debug: input Keyboard.00e5 = 0
2349 hid-debug: input Keyboard.00e6 = 0
2350 hid-debug: input Keyboard.00e7 = 0
- vin
---------- Message transmis ----------
Sujet?: RE: Boot time Bluetooth BUG: warning: (value > m) at hid-core.c:793
Date?: lundi 19 f?vrier 2007
De?: "Fortier,Vincent [Montreal]" <[email protected]>
??: Jiri Kosina <[email protected]>, Marcel Holtmann <[email protected]>
Hi Macel and Jiri,
Thnx for answering! I'll recompile my kernel when I'll be back home. Do you want me to keep my 2.6.19, switch to 2.6.20 or 2.6.21-rcX-gitYZ ?
Thnx.
Note: Added my home address in CC.
- vin
> -----Message d'origine-----
> De : Jiri Kosina [mailto:[email protected]]
> Envoy? : 19 f?vrier 2007 04:37
> ? : Marcel Holtmann
> Cc : Fortier,Vincent [Montreal]; [email protected]
> Objet : Re: Boot time Bluetooth BUG: warning: (value > m) at
> hid-core.c:793
>
> On Mon, 19 Feb 2007, Marcel Holtmann wrote:
>
> > we understand the original CSR HID proxy dongles, but for
> the Logitech
> > ones, it is wild guesses. The current support in hid2hci has been
> > tested on Logitech diNovo first generation and I have no other
> > Logitech hardware to verify it with. We might simply need
> the full HID
> > report descriptor to see who is at fault.
>
> Vincent,
>
> from the stacktrace it seems that you are using pre-2.6.20
> kernel. Could you please compile kernel with the following
> changes in drivers/usb/input/hid-core.c
>
> - comment the #undef DEBUG and #undef DEBUG_DATA
> - add #define DEBUG and #define DEBUG_DATA
>
> and send us the output?
>
> --
> Jiri Kosina
>
-------------------------------------------------------
On Mon, 19 Feb 2007, Veronique & Vincent wrote:
> Hi again Marcel and Jiri,
> I've set up the hid-core.c to DEBUG mode... and it literally got pretty verbose...
Vincent,
thanks for the output. Is this really the full output? The important part
- report descriptor dump - seems to be missing in the output (it should
read something like "hid-core.c: report descriptor (size XY, read YZ) =
... some hexadecimal numbers". This should be output by the time the HID
device is connected.
This output is generated in usb_hid_configure() function in hid-core.c
--
Jiri Kosina
On Tue, 20 Feb 2007 09:02:53 +0100 (CET), Jiri Kosina <[email protected]> wrote:
> On Mon, 19 Feb 2007, Veronique & Vincent wrote:
> > Hi again Marcel and Jiri,
> > I've set up the hid-core.c to DEBUG mode... and it literally got pretty verbose...
> thanks for the output. Is this really the full output? The important part
> - report descriptor dump - seems to be missing in the output (it should
> read something like "hid-core.c: report descriptor (size XY, read YZ) =
> ... some hexadecimal numbers". This should be output by the time the HID
> device is connected.
Can I get something useful without a kernel recompile, with something
like evtest? I have users on Fedora hitting this too. It very likely is
a regression caused by the new unified HID.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=227598
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=228755
-- Pete
On Wed, 21 Feb 2007, Pete Zaitcev wrote:
> Can I get something useful without a kernel recompile, with something
> like evtest? I have users on Fedora hitting this too. It very likely is
> a regression caused by the new unified HID.
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=227598
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=228755
Hi Pete,
I don't think that this is caused by the newly introduced generic HID
layer - I can see that both the bugreports in RH bugzilla are reported
against 2.6.19-1.2895.fc6. I have downloaded the source RPM and discovered
that these kernels are based on vanilla 2.6.19.2 - these kernels didn't
have generic HID layer yet, so this can't be the case.
The thing is that hid2hci sends through hiddev some excessivelly large
value, and HID subsystem then complains about it. It could be that the
device has a broken report descriptor (*), which results in buggy behavior
of sw.
It would be really nice to get the report descriptor - Vincent, it wasn't
in your output. There is a following code in drivers/usb/input/hid-core.c
#ifdef DEBUG_DATA
printk(KERN_DEBUG __FILE__ ": report descriptor (size %u, read %d) = ", rsize, n);
for (n = 0; n < rsize; n++)
printk(" %02x", (unsigned char) rdesc[n]);
printk("\n");
#endif
Could you make sure that you really compiled this file with
#define DEBUG_DATA
so that you get this output upon connection of new USB HID device?
(*) Which looks quite probable to me - I have been playing yesterday with
another masterpiece from Logitech (S510 keyboard), which also requires
fixing its report descriptor on-the-fly because it is fully usable :(
--
Jiri Kosina
>
> > > I've set up the hid-core.c to DEBUG mode... and it literally got pretty
verbose...
>
> > thanks for the output. Is this really the full output? The important part
> > - report descriptor dump - seems to be missing in the output (it should
> > read something like "hid-core.c: report descriptor (size XY, read YZ) =
> > ... some hexadecimal numbers". This should be output by the time the HID
> > device is connected.
The full dmesg with define DEBUG was included in the original message. Unless
something else was needed?
> Can I get something useful without a kernel recompile, with something
> like evtest? I have users on Fedora hitting this too. It very likely is
> a regression caused by the new unified HID.
I was actually getting that on a stock FC6 kernel. The dmesg output comes
from a recompiled vanilla 2.6.19.x with the exact same configuration BUT the
modified define's in hid-core.c and a local version appended to the .config
file. So this BUG does not only affect FC6 users but also the vanilla
kernel.
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=227598
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=228755
Good thing, I've added myself to the CC list of both.
>
> -- Pete
>
- vin
On Thu, 22 Feb 2007, Veronique & Vincent wrote:
> > > - report descriptor dump - seems to be missing in the output (it
> > > should read something like "hid-core.c: report descriptor (size
> > > XY, read YZ) = ... some hexadecimal numbers". This should be
> > > output by the time the HID device is connected.
> The full dmesg with define DEBUG was included in the original message. Unless
> something else was needed?
Unfortunately it was missing the report descriptor dump. The output should
look like
drivers/usb/input/hid-core.c: report descriptor (size 59, read 59) = 05 01
09 06 a1 01 05 07 19 e0 29 e7 15 00 25 01 75 01 95 08 81 02 81 03 95 05 05
08 19 01 29 05 91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 a4 00 05 07 19
00 2a a4 00 81 00 c0
and it should appear as soon as you connect the device. If it didn't, I
suspect that the
#define DEBUG_DATA
was not set properly in drivers/usb/input/hid-core.c (only defining DEBUG
is not enough for report descriptor dump to appear).
> I was actually getting that on a stock FC6 kernel. The dmesg output
> comes from a recompiled vanilla 2.6.19.x with the exact same
> configuration BUT the modified define's in hid-core.c and a local
> version appended to the .config file. So this BUG does not only affect
> FC6 users but also the vanilla kernel.
But so far all reports that have gathered for this bug at me seem to come
from FC6 ... does hid2hci by any chance in FC6 have any additional patches
that could be causing it, instead of being a kernel issue?
Thanks,
--
Jiri Kosina