In kernel 3.13.0 I still have the same issues. So I also did some debugging. Major findings:
- in hid-core.c the function usbhid_parse() is called after the joystick is attached - usbhid_parse() calls function hid_set_idle(), and this one fails while sending an URB (details see below). Reason: the joystick returns -EPIPE. - Same thing can be seen, if Wireshark is used to look at the traffic - According to the documentation, EPIPE means "Endpoint stalled". It furthermore says: "For non-control endpoints, reset this status with usb_clear_halt()." Unfortunately the return value is not checked in the kernel module. I added this check, and tried to do a "usb_clear_halt". However, I cannot quiet understand how things work in the code, and all my trials ended in crashing the kernel. --- hid-core.c:usbhid_parse:1006, ret=2 hid-core.c:hid_set_idle:669 message.c:usb_control_msg:132 message.c:usb_internal_control_msg:81 usb_start_wait_urb: 44 submits URB and waits for response with a timeout not: ret = usb_submit_urb() -> ret is zero *actual_length = 1 ctx: struct api_context { .done:struct completion, .status:int } completion: struct { done: uint, wait: wait_queue_head_t } expire = msec_to_jiffies(5000) = 1250 not: ret = ctx.status or -ETIMEDOUT, since dev_dbg does not appear ret = ctx.status -> so the -32 is ctx.status. This is "broken pipe", as seen in the Wireshark trace --- -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1035723 Title: Joystick (SideWinder FF2) Force Feedback doesn't reset properly Status in “linux” package in Ubuntu: Confirmed Bug description: I've been trying to get the FF to work on my SideWinder Force Feedback 2 joystick without success so far. This is what I get when I try to test it: [code] ~$ sudo fftest /dev/input/event4 Force feedback test program. HOLD FIRMLY YOUR WHEEL OR JOYSTICK TO PREVENT DAMAGES Device /dev/input/event4 opened Axes query: Effects: Constant Periodic Spring Friction Number of simultaneous effects: 0 Upload effects[0]: Function not implemented Upload effects[1]: Function not implemented Upload effects[2]: Function not implemented Upload effects[3]: Function not implemented Upload effects[4]: Function not implemented Upload effects[5]: Function not implemented Enter effect number, -1 to exit [/code] When I try any of the effects it does not do anything. When I plug it in the USB port it shows this in the 'dmesg' output: [code] [ 170.280024] usb 4-2: new full-speed USB device number 2 using uhci_hcd [ 170.489878] input: Microsoft SideWinder Force Feedback 2 Joystick as /devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/input/input4 [ 170.521795] generic-usb 0003:045E:001B.0003: device reports 0 simultaneous effects [ 170.582764] generic-usb 0003:045E:001B.0003: pid_block_load failed 60 times [ 170.582768] generic-usb 0003:045E:001B.0003: upload request failed [ 170.582774] generic-usb 0003:045E:001B.0003: input,hidraw2: USB HID v1.00 Joystick [Microsoft SideWinder Force Feedback 2 Joystick] on usb-0000:00:1a.1-2/input0 [/code] This tells me that the kernel modules are present and being executed. It's using the 'hid-pidff' driver and I found that the message about '0 simultaneous effects' is generated here: file: drivers/hid/usbhid/hid-pidff.c line: 1178, function pidff_reset From the code I can see it should at least find 2 simultaneous effects, but it finds none and after 20 retries it fails and continues. After this, I leave my comfort zone, but I am happy to debug (with some assistance) and try anything out. Maybe you'll be able to convert me from being a Windows developer to a Linux developer :) Cheers ProblemType: Bug DistroRelease: Ubuntu 12.04 Package: linux-image-3.2.0-29-generic 3.2.0-29.46 ProcVersionSignature: Ubuntu 3.2.0-29.46-generic 3.2.24 Uname: Linux 3.2.0-29-generic i686 AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24. ApportVersion: 2.0.1-0ubuntu12 Architecture: i386 ArecordDevices: **** List of CAPTURE Hardware Devices **** card 0: Intel [HDA Intel], device 0: AD198x Analog [AD198x Analog] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 AudioDevicesInUse: USER PID ACCESS COMMAND /dev/snd/controlC0: marijn 1970 F.... pulseaudio /dev/snd/pcmC0D0p: marijn 1970 F...m pulseaudio CRDA: Error: command ['iw', 'reg', 'get'] failed with exit code 1: nl80211 not found. Card0.Amixer.info: Card hw:0 'Intel'/'HDA Intel at 0xfe9dc000 irq 44' Mixer name : 'Analog Devices AD1984' Components : 'HDA:11d41984,10280211,00100400' Controls : 30 Simple ctrls : 18 Date: Sat Aug 11 20:33:24 2012 HibernationDevice: RESUME=UUID=d05e0608-7ccc-4d87-ac0c-994266652f47 InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Release i386 (20110427.1) IwConfig: lo no wireless extensions. virbr0 no wireless extensions. eth0 no wireless extensions. MachineType: Dell Inc. OptiPlex 755 ProcEnviron: LANGUAGE=en_GB:en TERM=xterm PATH=(custom, user) LANG=en_GB.UTF-8 SHELL=/bin/bash ProcFB: 0 inteldrmfb ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-29-generic root=UUID=99e917a5-032c-416b-ab03-af8b02651198 ro crashkernel=384M-2G:64M,2G-:128M quiet splash vt.handoff=7 RelatedPackageVersions: linux-restricted-modules-3.2.0-29-generic N/A linux-backports-modules-3.2.0-29-generic N/A linux-firmware 1.79 RfKill: SourcePackage: linux UpgradeStatus: Upgraded to precise on 2012-04-25 (108 days ago) dmi.bios.date: 05/31/2011 dmi.bios.vendor: Dell Inc. dmi.bios.version: A19 dmi.board.name: 0PU052 dmi.board.vendor: Dell Inc. dmi.chassis.type: 15 dmi.chassis.vendor: Dell Inc. dmi.modalias: dmi:bvnDellInc.:bvrA19:bd05/31/2011:svnDellInc.:pnOptiPlex755:pvr:rvnDellInc.:rn0PU052:rvr:cvnDellInc.:ct15:cvr: dmi.product.name: OptiPlex 755 dmi.sys.vendor: Dell Inc. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1035723/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp