Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 125353 - hid-core: USB joystick adapter [0925:8866] not working
Summary: hid-core: USB joystick adapter [0925:8866] not working
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Pete Zaitcev
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: FCMETA_USB
TreeView+ depends on / blocked
 
Reported: 2004-06-04 23:14 UTC by Jack Spaar
Modified: 2007-11-30 22:10 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-02-23 23:37:14 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Output of lsbusb -v (deleted)
2004-06-04 23:20 UTC, Jack Spaar
no flags Details
dmesg output w/ CONFIG_USB_DEBUG defined (deleted)
2004-06-11 02:52 UTC, Jack Spaar
no flags Details

Description Jack Spaar 2004-06-04 23:14:14 UTC
Description of problem:
A PSX/USB dual joystick adapter (id below) fails to work in FC2 with
either kernel-2.6.5-1.358 or kernel-2.6.6-1.383 (from testing).

Version-Release number of selected component (if applicable):
kernel-2.6.5-1.358
kernel-2.6.6-1.383

How reproducible:
Every time.

Steps to Reproduce:
1. Plug in PSX/USB joystick adapter.
2. View kernel messages.
3. Run "jstest /dev/js0"
  
Actual results:
dmesg acknowledges device but issues errors (see below).
"jstest /dev/js0" issues a few initial non-sense events and doesn't
respond to joystick input.

Expected results:
No errors from usb module, valid jstest output.

Additional info:
On plug-in, dmesg contains:
Jun  4 15:20:23 localhost kernel: usb 1-2: new low speed USB device
using address 3
Jun  4 15:20:23 localhost kernel: usb 1-2: string descriptor 0 read
error: -42
Jun  4 15:20:23 localhost kernel: usb 1-2: string descriptor 0 read
error: -42
Jun  4 15:20:23 localhost kernel: drivers/usb/input/hid-core.c: ctrl
urb status -32 received
Jun  4 15:20:23 localhost kernel: drivers/usb/input/hid-core.c: ctrl
urb status -32 received
Jun  4 15:20:23 localhost kernel: input: USB HID v1.00 Joystick
[0925:8866] on usb-0000:00:02.0-2

-----------------
Output of lsusb:
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 004: ID 0925:8866 Wisegroup, Ltd MP-8866 Dual USB Joypad
Bus 001 Device 002: ID 0f03:0001
Bus 001 Device 001: ID 0000:0000

Comment 1 Jack Spaar 2004-06-04 23:20:22 UTC
Created attachment 100886 [details]
Output of lsbusb -v

Should mention this device works on the same hardware in Win98.

Here's a report on linux-usb-users for the same issue (by someone else using a
different distro):
http://www.mail-archive.com/linux-usb-users@lists.sourceforge.net/msg10248.html

Comment 2 Jack Spaar 2004-06-11 02:52:34 UTC
Created attachment 101056 [details]
dmesg output w/ CONFIG_USB_DEBUG defined

FWIW, attached dmesg output from kernel-2.6.5-1.358 compiled with
CONFIG_USB_DEBUG defined.  Device attachment occurs immediately after last
(unrelated) i2c_adapter message.

Comment 3 Jack Spaar 2004-08-06 16:49:42 UTC
Same in kernel-2.6.7-1.494.2.2.

Comment 4 Pete Zaitcev 2005-02-03 00:15:24 UTC
So, what about the FC3 with 2.6.10-1.741_FC3? It has the new
enumeration exactly for cases like this one.


Comment 5 Jack Spaar 2005-02-03 02:27:49 UTC
Thx for checking back Pete.

No joy with .741_FC3 or .760_FC3.  Error messages are a bit different.
Here's dmesg during connect/lsusb:

usb 1-1: new low speed USB device using ohci_hcd and address 2
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
input: USB HID v1.00 Joystick [0925:8866] on usb-0000:00:02.0-1
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
usb 1-1: string descriptor 0 read error: -32
usb 1-1: usbfs: process 5830 (lsusb) did not claim interface 0 before use

lsusb -v output essentially identical to previous attachment.

Same single burst of nonsense values from jstest followed by silence.
 Noticed one oddity, first jstest after plugin generates a few more
"events" than subsequent runs.  [cat /dev/input/js0 > somefile gives
352 bytes the first time after plugin, and 336 bytes every time after
that.  FWIW.]

Diabolical scheme to get girlfriend hooked on Linux foiled again by
cheesy dancepad adapter.

Comment 6 Pete Zaitcev 2005-10-18 08:21:39 UTC
The -32 is a stall condition, so device is consciously refusing to return
the descriptor. I suppose you could make a one-off kernel which simply
does not read it. It's probably not all that needed... Just a device name
or vendor name.

Not sure what to do about it in the common case though.


Comment 7 Andrew Fuller 2006-01-21 16:31:26 UTC
I've been trying to debug this one on my Gentoo system.  I've found that if  
you run usbmodules with the --device paramter will have the side effect of  
allowing the adapter to work.  
  
For example:  
Plug in adapter [joydev is loaded, /dev/input/js0 is created]  
cat /dev/input/js0 [a few bytes, then silence; never any response from pushing  
buttons]  
usbmodules --device /proc/bus/usb/###/### [no output]  
cat /dev/input/js0 [now it responds to button presses]  

Comment 8 Tim Christie 2006-02-18 21:51:44 UTC
I had the same problem with a USB dance pad adepter under FC4 running
2.6.14-1.1644_FC4.  It is recognized when plugged in, but a cat of js0 shows no
activity after the plug-in.  But if I run:

usbmodules --device /proc/bus/usb/xxx/yyy

it works very nicely.

Comment 9 Jack Spaar 2006-02-21 06:55:47 UTC
No joy so far using the above method with kernels 2.6.15-1.1831_FC4,
2.6.14-1.1656_FC4, and 2.6.13-1.1526_FC4.  I don't have 1644 on hand.

Since FC4's usbutils package does not build usbmodules by default, I configured
the usbutils-0.70-1.1 SRPM with --enable-usbmodules and compiled usbmodules.

Usbmodules is silent except in the case of the 1656_FC4 kernel, where it shows
that the yealink phone driver module is registered.  Cat or jstest on
/dev/input/js0 show no output beyond the initial burst of garbage as usual.

My particular adapter has a Cypress Semiconductor CY7 C63001 chip.

Comment 10 Andrew Fuller 2006-02-23 16:19:22 UTC
Update: 
 
The usbmodules hack only worked with old versions (0.11) not with the newer 
(0.70+) 
 
Fortunately the bug has been identified.  Due to a quirk in the hardware, it 
would lock itself during part of the initialization sequence.  The usbmodules 
hack was just giving it a nudge and it would put itself back into a valid 
state. 
 
The patch is here: 
http://marc.theaimsgroup.com/?l=linux-usb-devel&m=114038593204406&w=2 
 
(it's only two lines; it just marks this device as having this particular 
quirk) 

Comment 11 Jack Spaar 2006-02-23 23:37:14 UTC
I applied the wisegroup.patch to kernel-2.6.15-1.1831_FC4.src.rpm and it works
for me.  Events now work properly, also both joysticks on the dual adapter show
up in /dev/input instead of just one.

Hey Andrew nice job of chasing this thing down, getting the USB gods to throw
enough crumbs to help you figure this one out yourself, and reporting the fix
back to the rest of us!

I guess proper bz ettiquette would be to close as UPSTREAM, where the patch belongs.


Note You need to log in before you can comment on or make changes to this bug.