linux-sg2042/drivers/usb/core
Alan Stern ee49fb5dc8 USB: keep count of unsuspended children
This patch (as818b) simplifies autosuspend processing by keeping track
of the number of unsuspended children of each USB hub.  This will
permit us to avoid a good deal of unnecessary work all the time; we
will no longer have to create a bunch of workqueue entries to carry
out autosuspend requests, only to have them fail because one of the
hub's children isn't suspended.

The basic idea is simple.  There already is a usage counter in the
usb_device structure for preventing autosuspends.  The patch just
increments that counter for every unsuspended child.  There's only one
tricky part: When a device disconnects we need to remember whether it
was suspended at the time (leave the counter alone) or not (decrement
the counter).

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-12-01 14:25:52 -08:00
..
Kconfig USB: create a new thread for every USB device found during the probe sequence 2006-12-01 14:25:52 -08:00
Makefile usbcore: move code among source files 2006-09-27 11:58:50 -07:00
buffer.c usbcore: trim down usb_bus structure 2006-09-27 11:58:56 -07:00
config.c usb: deal with broken config descriptors 2006-09-27 11:58:55 -07:00
devices.c USB: devices: Use usb_endpoint_* functions 2006-12-01 14:23:28 -08:00
devio.c usb devio: handle class_device_create() error 2006-10-17 14:46:32 -07:00
driver.c USB: keep count of unsuspended children 2006-12-01 14:25:52 -08:00
endpoint.c USB: added dynamic major number for USB endpoints 2006-12-01 14:25:52 -08:00
file.c fix file specification in comments 2006-10-03 23:01:26 +02:00
generic.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
hcd-pci.c USB: Properly unregister reboot notifier in case of failure in ehci hcd 2006-09-27 11:58:54 -07:00
hcd.c usb hub: fix root hub code so it takes more than 15 devices per root hub 2006-12-01 14:23:26 -08:00
hcd.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
hub.c USB: keep count of unsuspended children 2006-12-01 14:25:52 -08:00
hub.h USB: Move private hub declarations out of public header file 2006-12-01 14:23:30 -08:00
inode.c [PATCH] usb: fixup usb so it uses struct pid 2006-10-02 07:57:15 -07:00
message.c USB: struct usb_device: change flag to bitflag 2006-12-01 14:25:52 -08:00
notify.c usbfs: private mutex for open, release, and remove 2006-09-27 11:58:49 -07:00
otg_whitelist.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysfs.c USB: fix __must_check warnings in drivers/usb/core/ 2006-09-27 11:58:57 -07:00
urb.c USB: Remove unneeded void * casts in core files 2006-09-27 11:58:59 -07:00
usb.c USB core: fix compiler warning about usb_autosuspend_work 2006-12-01 14:23:35 -08:00
usb.h [PATCH] usb: fixup usb so it uses struct pid 2006-10-02 07:57:15 -07:00