Strange USB joystick behaviour

From: Gordon Beaton (not_at_for.email)
Date: 04/29/05


Date: 29 Apr 2005 15:49:16 +0100

I've just spent 2 days trying to determine why a simple 2-axis
1-button USB joystick (CH Products HFX 1200 industrial joystick)
wasn't working on some of our Fedora Core 2 systems, while it works
just fine on others (different host type) with the basic joydev
driver.

The most significant difference between the systems is that the
non-working ones have an AMD USB controller and use the ohci_hcd
driver, while the working systems have an Intel controller and use the
uhci_hcd driver.

In all cases the joystick shows up correctly when attached:

  Apr 29 14:45:34 mms1 kernel: input: USB HID v1.00 Joystick
  [CH PRODUCTS CH OEM 2 AXIS 1 BUTTON JOYSTICK] on usb-0000:01:00.0-1

On the non-working systems, "jstest /dev/js0" succeeds in opening the
device, however no events are reported.

A USB mouse connected to the non-working system works correctly, so
USB seems to work ok.

In the process of troubleshooting this I ran usbview to see a diagram
of the attached devices. As if by magic the joystick started working
afterwards and continued to work until the next reboot.

All that usbview does is read /proc/bus/usb/devices and display the
results in a graphic form, so I rebooted, ran jstest and got no
events. Then I did "cat /proc/bus/usb/devices" and ran jstest again,
this time successfully. Afterwards the joystick continues to work, and
this is 100% reproducible.

Has anyone else seen this or similar behaviour? What does reading
/proc/bus/usb/devices do to the USB driver, and why should it be
necessary with the joystick (but not the mouse), or with AMD/ohci (but
not Intel/uhci)?

Any insight is welcome.

/gordon

-- 
[  do not email me copies of your followups  ]
g o r d o n + n e w s @  b a l d e r 1 3 . s e

Quantcast