Created attachment 202831 [details] the set_operational_usb() function with 3rd party quirk I use an official DualShock3 controller connected through USB. Whenever I plug the controller, after 10 seconds or so, the rumble feature goes 'on' forever. Playing games with an ever-rumbling controller is no fun, really. The problem started when I switched from 4.0 to 4.1, Gentoo patched. I checked using the vanilla kernels 4.1.15 and 4.3.5. These two suffer the same problem. I located a probable source within the 'set_operational_usb()' function in Drivers/hid/hid-sony.c . There is some code here, meant for third party controllers, that seem to mess up with the official one. I simply commented out the suspicious code, then my controller worked just fine. However I hardly think this can be considered a proper solution, some kind of logic is required here IMHO. There have been a discussion about this code here: https://lkml.org/lkml/2015/2/7/106, as well as a related bug report: https://bugzilla.kernel.org/show_bug.cgi?id=99541
Feel free to ask for some testing with an official controller.
Created attachment 202851 [details] the set_operational_usb() function with commented out 3rd party quirk
Created attachment 203541 [details] solution: testing for DualShock3 ID in set_operational_usb() This doesn't break the code since any compatible controller that currently works will still work. Only the the behaviour with DualShock3 is modified (for the best!). Seems to me like a proper solution. What do you guys think?
Is this problem still around for you? We have tested quite a bit with DualShock 3, but haven't seen this issue.