Good afternoon,

I posted this message on the mailing list on Saturday, but it didn't
seem to come through. Here's a re-post - sorry if this ends up being a
duplicate.
..tom

-------- Original post
Hi all,

this weekend, I managed to have my first serious go at getting Linux-USB
working with 2.3.99pre3. . I have tinkered around with it earlier, but
never
really tried to get it going. Mostly very successful - thanks to
everyone
involved to get it to this stage!

I did have one problem with OHCI controllers, though. It involves the
very
early stage, when the device descriptor gets retrieved (8 bytes), and
from
there on, the whole descriptor gets read. This works like a charm on
usb-uhci and uhci, but ohci failed with the message "get descriptor
returned
0 bytes, expected 46" (or whatever the real length was).

I investigated this to a certain extent. All of the devices involved
were
low-speed, input-type devices like mice, keyboards, joysticks, ... It
seems
that, the longer the descriptor was, the more likely it was to fail. In
a
plain mouse (Logitech N-48), it happened maybe once every 15 or 20
plugs, on
a simple joystick with a 30-something byte descriptor, it happened once
every ten plugs, on a joystick with a more complicated descriptor (like
the
one mentioned with 46 bytes) it happend on almost every third plug.

Since I am new to the usb sources, I dug around a little bit and played
a
little with parameters. I haven't come to any conclusion yet, but seem
to
have stumbled across a line of code which fixes the problem in a very
ugly
way. Between getting the basic descriptor and the full one in usb.c, I
inserted a "wait_ms(16);" (the amount was completely arbitrary). I'm
going
through the specs, but does anyone (Roman? Aki?) in the mean time have
any
idea?

Once the stack gets over that part, subsequent interrupt transfers work
fine. Got the keyboard and mouse working (hid, kbddev, mousedev). Apart
from
the odd Oops during un-plug, things ran smooth.

Success stories:
- Also, after I made the 16-ms wait fix for OHCI, I was feeling daring
and
hooked up my digital camera (Toshiba PDR-M4, apparently having some
Iomega-based SCSI interface, judging from the windows drivers).
Modprobed
usb-storage, mounted the flash card with a vfat filesystem (would only
do it
read-only), and there they were - my pictures in all of their beauty!

- Interrupt out: I believe this transfer type has been exercised least,
mainly because there are hardly any int-out devices. Well, we
(@logitech)
have a few, and I went ahead and wrote a little driver which talks over
int-out. Success! Works on uhci, usb-uhci, usb-ohci, no glitches or
weirdnesses.

Just thought I'd mention it,
..tom



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to