On Wed, 12 May 2004, fengwei yin wrote:

> Hi,everyone
> 
> I have a 4-port usb hub.If on pc,every thing is ok.
> 
> When I use it on my board based mips(big endian),it can be
> detected by 2-port hub-on-board.But When I connect some usb
> device on this 4-port hub,usb_get_port_status of 4-poprt hub 
> return 0x1010100(should be 0x10101, 0x1010100=le32_to_cpu(0x10101)).
> So hub driver think there is nothing connect.

The oldest kernel I've got is 2.4.20, which might not be the same as your 
2.4.17.  However, in my kernel usb_get_port_status() doesn't return a 
32-bit value at all.  What it returns is the status of the transfer (which 
should be 0) -- the data itself is stored using a pointer to a struct 
usb_port_status, which defines the first 16-bit part as wHubStatus and the 
second 16-bit part as the wHubChange.  There's no way these values can get 
interchanged.

> If I connect this usb device directly to 2-port hub,
> usb_get_port_status of 2-port hub-on-board return 0x10101.
> 
> I wonder why 2-port hub and 4-port hub return different port status.
> Is there big endian hub & little endian hub?
> 
> I google for this problem,but get nothing.
> 
> BTW,2-port hub is hub on my mips board.linux kernel is linux-2.4.17
> from MontaVista.

You can try using a later kernel.

Alan Stern



-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to 
deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to