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

Reply via email to