On Mon, 5 Mar 2007, Valentin Longchamp wrote:

> Now I have a more precise question about the actual implementation of 
> Freescale i.MX31 kernel release (here is the patch: 
> http://bitshrine.org/gpp/linux-2.6.16-mx31-usb-2.patch). It works well, but 
> only with low-current devices (I have tested the ehci support with USB 
> pendrive flash disk). But when I try to plug in some higher current consumers 
> like a wifi pendrive for instance, which needs 300 mA, the configuration is 
> rejected because of this from the choose_configuration function in 
> drivers/usb/core/hub.c :
> 
> >             /*
> >              * The next test may not be as effective as it should be.
> >              * Some hubs have errors in their descriptor, claiming
> >              * to be self-powered when they are really bus-powered.
> >              * We will overestimate the amount of current such hubs
> >              * make available for each port.
> >              *
> >              * This is a fairly benign sort of failure.  It won't
> >              * cause us to reject configurations that we should have
> >              * accepted.
> >              */
> >
> >             /* Rule out configs that draw too much bus current */
> >             if (c->desc.bMaxPower * 2 > udev->bus_mA)
> >                     continue;
> 
> >From what I understand (I'm not very familiar with kernel USB code) 
> c->desc.bMaxPower is what the hub makes available for each port and 
> udev->bus_mA is what the device requests.

It's the reverse: (c->desc.bMaxPower * 2) is what the device requests and 
udev->bus_mA is what the hub makes available.

>  This has failed for me with a 
> device requesting 300 mA.
> 
> Now I was not able to find in the code where this limit is fixed for my ehci 
> hardware. Because I haven't found a current limitation in the USB block or 
> transceiver (Phillips ISP1504) documentation (quick look).

Search for "power_budget" in the source code for your bus glue.

Alan Stern


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
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