It turns out that USB devices suck when it comes to powermanagement
issues :(
A number of patches have been submitted near the end of this kernel
release cycle that add new device ids to the quirk table in the kernel
to disable autosuspend for specific devices. However, a number of
developers are very worried that even with the testing that has been
done, once 2.6.23 is released, we are going to get a whole raft of angry
users when their devices break in nasty ways.
As an example, it seems that almost 2/3 of all USB printers just can not
handle autosuspend. And there's a _lot_ of USB printers out there...
When researching how other operating systems handle this, it was found
out that they use a whitelist of devices that are able to properly
suspend. So, in the future, that is how we are going to handle this.
These two patches address the need today to have users machines still
work, even if they might draw more power than they possibly could (which
is not any more than they did in 2.6.22.)
These patches do two things:
- disable USB autosuspend on all devices except for USB hubs. This
can be easily overridden by userspace to turn on autosuspend for
devices that a user wants to. HAL will use a whitelist in the
future for these types of devices.
- revert the usb-storage autosuspend patch. This breaks a number of
devices out there that can not handle suspend properly, _AND_ the
current patch is broken even for devices that do work properly under
some situations. Data loss is not a good thing to have happen, so
this patch is reverted for now. Oliver has more specifics about the
issues involved here if anyone is curious.
The "disable autosuspend" patch has been in the -mm tree for a while,
and is being shipped by Ubuntu and Red Hat in their bleeding-edge
kernels in order to handle the huge number of broken devices. openSUSE
will also get this patch for its next kernel release once the suse
developers return from wondering around the woods of the Czech Republic
next week.
Please pull from:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/
The full patches will be sent to the linux-usb-devel mailing list, if
anyone wants to see them.
thanks,
greg k-h
drivers/usb/core/quirks.c | 6 ++++++
drivers/usb/storage/scsiglue.c | 13 ++++---------
drivers/usb/storage/usb.c | 27 +++++++--------------------
3 files changed, 17 insertions(+), 29 deletions(-)
---------------
Alan Stern (1):
USB: disable autosuspend by default for non-hubs
Greg Kroah-Hartman (1):
Revert "usb-storage: implement autosuspend"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]