hid-pidff bug: fails to find all required reports of saitek gamepad

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

After reading HID/PID specs I understood, that Saitek gamepads doesn't
require any driver -- they are PID compliant. Then, after loading
usbhid with debug messages enabled, I saw this:
[  773.716917] usbhid:hid-pidff: starting pid init
[  773.716947] usbhid:hid-pidff: found usage 0x21 from field->logical
[  773.716965] usbhid:hid-pidff: found usage 0x5a from field->logical
[  773.716983] usbhid:hid-pidff: found usage 0x73 from field->logical
[  773.717000] usbhid:hid-pidff: found usage 0x6e from field->logical
[  773.717018] usbhid:hid-pidff: found usage 0x77 from field->logical
[  773.717036] usbhid:hid-pidff: found usage 0x96 from field->logical
[  773.717075] usbhid:hid-pidff: found usage 0x7d from field->logical
[  773.717127] usbhid:hid-pidff: found usage 0x7f from field->logical
[  773.717155] usbhid:hid-pidff: 4 missing
[  773.717176] usbhid:hid-pidff: reports not ok, aborting

Definitely, HID descriptor parser has problems, which stops driver
from reading all reports. Here is hid descriptor of gamepad:
http://dmitriy.geels.googlepages.com/HIDDescriptor.html

I added some more debug messages:
http://dmitriy.geels.googlepages.com/debug.patch
Then got this:

[  773.716917] usbhid:hid-pidff: starting pid init
[  773.716937] usbhid:hid-pidff: checking field->logical == 0x000f0021
[  773.716947] usbhid:hid-pidff: found usage 0x21 from field->logical
[  773.716956] usbhid:hid-pidff: checking field->logical == 0x000f005a
[  773.716965] usbhid:hid-pidff: found usage 0x5a from field->logical
[  773.716974] usbhid:hid-pidff: checking field->logical == 0x000f0073
[  773.716983] usbhid:hid-pidff: found usage 0x73 from field->logical
[  773.716992] usbhid:hid-pidff: checking field->logical == 0x000f006e
[  773.717000] usbhid:hid-pidff: found usage 0x6e from field->logical
[  773.717009] usbhid:hid-pidff: checking field->logical == 0x000f0077
[  773.717018] usbhid:hid-pidff: found usage 0x77 from field->logical
[  773.717027] usbhid:hid-pidff: checking field->logical == 0x000f0096
[  773.717036] usbhid:hid-pidff: found usage 0x96 from field->logical
[  773.717045] usbhid:hid-pidff: checking field->logical == 0x00ff0302
[  773.717055] usbhid:hid-pidff: checking hid->collection[11].usage ==
0x00ff0302
[  773.717066] usbhid:hid-pidff: checking field->logical == 0x000f007d
[  773.717075] usbhid:hid-pidff: found usage 0x7d from field->logical
[  773.717084] usbhid:hid-pidff: checking field->logical == 0x00000000
[  773.717093] usbhid:hid-pidff: checking hid->collection[18].usage ==
0x00000000
[  773.717118] usbhid:hid-pidff: checking field->logical == 0x000f007f
[  773.717127] usbhid:hid-pidff: found usage 0x7f from field->logical
[  773.717136] usbhid:hid-pidff: checking field->logical == 0x000f0025
[  773.717145] usbhid:hid-pidff: checking field->logical == 0x000f008b
[  773.717155] usbhid:hid-pidff: 4 missing
[  773.717162] usbhid:hid-pidff: 5 missing
[  773.717169] usbhid:hid-pidff: 7 missing
[  773.717176] usbhid:hid-pidff: reports not ok, aborting

25, 8b? these are inside of required 0xab and 0x89 reports, and 0x90
is just ignored...

I don't understand yet, how to fix this bug, so I'm posting this to
maillist with hope on someones help.
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux