From: David Liontooth <liontooth@cogweb.net>
To: Greg KH <greg@kroah.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org,
linux-usb-devel@lists.sourceforge.net
Subject: Re: [linux-usb-devel] Re: USB devices fail unnecessarily on unpowered hubs
Date: Thu, 01 Jun 2006 17:03:35 -0700 [thread overview]
Message-ID: <447F8057.4000109@cogweb.net> (raw)
In-Reply-To: <20060601164327.GB29176@kroah.com>
Greg KH wrote:
> On Thu, Jun 01, 2006 at 10:58:43AM -0400, Alan Stern wrote:
>
>> On Thu, 1 Jun 2006, Andrew Morton wrote:
>>
>>
>>> On Thu, 01 Jun 2006 02:18:20 -0700
>>> David Liontooth <liontooth@cogweb.net> wrote:
>>>
>>>
>>>> Starting with 2.6.16, some USB devices fail unnecessarily on unpowered
>>>> hubs. Alan Stern explains,
>>>>
>>>> "The idea is that the kernel now keeps track of USB power budgets. When a
>>>> bus-powered device requires more current than its upstream hub is capable
>>>> of providing, the kernel will not configure it.
>>>>
>>>> Computers' USB ports are capable of providing a full 500 mA, so devices
>>>> plugged directly into the computer will work okay. However unpowered hubs
>>>> can provide only 100 mA to each port. Some devices require (or claim they
>>>> require) more current than that. As a result, they don't get configured
>>>> when plugged into an unpowered hub."
>>>>
>>>> http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg43480.html
>>>>
>>>> This is generating a lot of grief and appears to be unnecessarily
>>>> strict. Common USB sticks with a MaxPower value just above 100mA, for
>>>> instance, typically work fine on unpowered hubs supplying 100mA.
>>>>
>>>> Is a more user-friendly solution possible? Could the shortfall
>>>> information be passed to udev, which would allow rules to be written per
>>>> device?
>>>>
>> I'm not sure whether we create a udev event when a new USB device is
>> connected.
>>
> Yes we do. It's of the class "usb_device" and you can write a single
> udev rule to override the power test if you really want to.
>
> Of course I don't recommend someone doing this, as it is violating the
> USB power rules, and it is a good thing that we are finally testing for
> them.
>
It's clearly a good thing to be testing for this. As Alan points out,
100mA is the maximum permitted pre-configuration draw, so what a device
draws when plugged in is not informative.
However, obeying the USB power rules is not an end in itself -- the
relevant question is the minimum power the device requires to operate
correctly and without damage.
The MaxPower value does not appear to be a reliable index of this. My
USB stick has a MaxPower value of 178mA and works flawlessly off an
unpowered hub. Unfortunately devices don't seem to tell us what their
minimum power requirements are, so we need more flexibility in writing
rules for this.
udev could surely pick up on the MaxPower value and tolerate up to a
100% underrun on USB flash drives. That would likely still 90% of the
pain right there, maybe all of it.
What are the reasons not to do this? What happens if a USB stick is
underpowered to one unit? Nothing? Slower transmission? Data loss? Flash
memory destruction? If it's just speed, it's a price well worth paying.
This is a great opportunity for a small exercise in empathy, utilizing
that little long-neglected mirror neuron. Thousands of USB sticks
inexplicably go dead in people's familiar hubs on keyboards and desks;
Linux kernel coders dream sweet dreams of not violating USB power rules.
I appreciate Andrew's support for a real-worldly solution.
Dave
next prev parent reply other threads:[~2006-06-02 0:07 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-01 9:18 USB devices fail unnecessarily on unpowered hubs David Liontooth
2006-05-30 20:01 ` Pavel Machek
2006-06-03 9:29 ` Oliver Neukum
2006-06-05 14:32 ` [linux-usb-devel] " David Brownell
2006-06-06 7:43 ` Oliver Neukum
2006-06-08 7:01 ` Pavel Machek
2006-06-08 8:34 ` [PATCH] limit power budget on spitz Pavel Machek
2006-06-08 8:50 ` Richard Purdie
2006-06-08 9:02 ` Pavel Machek
2006-06-08 9:22 ` Richard Purdie
2006-06-08 17:09 ` Russell King
2006-06-08 18:26 ` David Brownell
2006-06-08 20:06 ` Richard Purdie
2006-06-08 20:38 ` [linux-usb-devel] " David Brownell
2006-06-08 21:22 ` Richard Purdie
2006-06-08 21:40 ` David Brownell
2006-06-08 21:49 ` Richard Purdie
2006-06-08 23:44 ` David Brownell
2006-06-09 1:25 ` Nicolas Pitre
2006-06-09 2:03 ` David Brownell
2006-06-09 2:34 ` Nicolas Pitre
2006-06-01 10:01 ` USB devices fail unnecessarily on unpowered hubs Andrew Morton
2006-06-01 11:42 ` Daniel Drake
2006-06-01 14:58 ` Alan Stern
2006-06-01 15:09 ` linux-os (Dick Johnson)
2006-06-01 15:23 ` Lennart Sorensen
2006-06-01 21:39 ` Dagfinn Ilmari Mannsåker
2006-06-01 15:53 ` Oliver Neukum
2006-06-01 17:24 ` linux-os (Dick Johnson)
2006-06-01 16:57 ` Alan Stern
2006-06-01 16:43 ` [linux-usb-devel] " Greg KH
2006-06-02 0:03 ` David Liontooth [this message]
2006-06-02 1:53 ` [linux-usb-devel] " David Brownell
2006-06-02 7:12 ` Oliver Neukum
2006-06-02 15:11 ` Alan Stern
2006-06-02 19:49 ` David Liontooth
2006-06-01 16:59 ` Andrew Morton
2006-06-01 17:08 ` Alan Stern
2006-06-01 17:34 ` Mark Lord
2006-06-01 17:47 ` Alan Stern
[not found] <6iS8y-35Z-5@gated-at.bofh.it>
[not found] ` <6iWP5-2gj-71@gated-at.bofh.it>
[not found] ` <6iYxg-53W-29@gated-at.bofh.it>
[not found] ` <6j5oR-7Sw-11@gated-at.bofh.it>
2006-06-02 2:39 ` [linux-usb-devel] " Robert Hancock
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=447F8057.4000109@cogweb.net \
--to=liontooth@cogweb.net \
--cc=akpm@osdl.org \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb-devel@lists.sourceforge.net \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox