On Wednesday 26 January 2005 7:55 am, Chris Clayton wrote:
> 
> I'm having trouble getting on on-board USB port working on my Compaq 
> Aramada 7400. Well. I should qualify that and say that I can't get it to 
> wotk with a 2.6 kernel - devices that I plug in when running a 
> 2.4.{26,28} kernel or, for that matter, Windows ME, work fine. In fact 
> they work fine with 2.6.10 (haven't tried others) if I attach them 
> through a cardbus USB2 adapater. The devices I am referring to are a 
> Belkin F5D6050 wireless adapter, a STIR4200 IrDA adapter, a plain 
> (unpowered) hub and a CF Card adapter. The 2.6 kernels I have tried are 
> 2.6.5 and 2.6.10.

So it looks like there's some chip-specific quirk that isn't handled
by the current OHCI code ... or potentially usbcore's hub driver.  I'll
assume 2.6.11-rc2 has the same results, and that you tried all the
devices you have ready access to ... :)

This is relatively old hardware -- a Pentium II -- and I think the OHCI
silicon was relatively new at that time.  It was before I started working
with OHCI at all, fwiw, and I've never seen Compaq silicon myself.  So
it's easy to believe that silicon has constraints that aren't found on
newer hardware (== what most folk test with).

It looked like there were no particular issues during chip initialization,
but I saw a few interesting points there and during enumeration:

 - New to me:  it doesn't disable the Ownership Change (OC) IRQ (harmless?)
 - Hmm, PCI power management "version 1" -- shouldn't matter here
 - Seems to read the device descriptors OK, and config descriptor length
 - Problems crop up later, when reading the entire config descriptor
 - ... or sometimes when reading a string descriptor
 - ... or fetching the external hub (class) status
 - ... or setting configuration
 - Takes a long time to reset ports _after_ any of those errors
 - ... often fails completely!
 - ... issue seems tied to the root hub port, even with external hubs

The failure mode seems to suggest that the root port goes AWOL
and has a hard time recovering.

On the theory that this silicon wants more time between control requests,
you might try adding an msleep(10) in drivers/usb/core/message.c right
before issuing a control request, at the top of usb_internal_control_msg().
(The OHCI hardware should have gotten rid of all relevant hardware state
after two or three milliseconds; so even 5 msec ought to be plenty...)

Did you try not using ACPI at all?  I suspect that won't matter, but
this is APM-era hardware so it's worth verifying this ... lots of
ACPI from that era didn't work according to spec.

A complementary BIOS-interaction theory might be that applying
patch [1] and modprobing with distrust_firmware=N could help.

On the theory that it's a hub driver bug, try [2].  Maybe an even
longer timeout is needed after reset; or maybe one's needed after
set_address().

If none of that helps, can you send /sys/class/usb_host/usb1/registers
files, both after init and after enumeration failure?  (And if possible,
during...)  They may cast some light on what's going on, especially if
there are interesting changes.

If all else fails, another useful data point would be whether there's
some 2.6 kernel before 2.6.5 that works.  There've been two classes
of changes that interact here:  in usbcore (notably the hub driver),
and in ohci.  Either one could be at fault here.  Try 2.6.3, maybe.

- Dave

[1] http://marc.theaimsgroup.com/?l=linux-usb-devel&m=110628457424684&w=2
[2] http://marc.theaimsgroup.com/?l=linux-usb-devel&m=110672516013383&w=2




-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to