kernel_optimize_test/drivers/hid/usbhid
Oliver Neukum 0361a28d3f HID: autosuspend support for USB HID
This uses the USB busy mechanism for aggessive autosuspend of USB
HID devices. It autosuspends all opened devices supporting remote wakeup
after a timeout unless

- output is being done to the device
- a key is being held down (remote wakeup isn't triggered upon key release)
- LED(s) are lit
- hiddev is opened

As in the current driver closed devices will be autosuspended even if they
don't support remote wakeup.

The patch is quite large because output to devices is done in hard interrupt
context meaning a lot a queuing and locking had to be touched. The LED stuff
has been solved by means of a simple counter. Additions to the generic HID code
could be avoided. In addition it now covers hidraw. It contains an embryonic
version of an API to let the generic HID code tell the lower levels which
capabilities with respect to power management are needed.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-03-25 17:57:57 +01:00
..
hid-core.c HID: autosuspend support for USB HID 2009-03-25 17:57:57 +01:00
hid-pidff.c HID: fix a lockup regression when using force feedback on a PID device 2008-10-14 23:51:02 +02:00
hid-quirks.c HID: add proper support for pensketch 12x9 tablet 2009-01-04 01:01:43 +01:00
hiddev.c HID: autosuspend support for USB HID 2009-03-25 17:57:57 +01:00
Kconfig HID: make boot protocol drivers depend on EMBEDDED 2009-01-04 01:00:53 +01:00
Makefile HID: remove hid-ff 2008-10-14 23:51:01 +02:00
usbhid.h HID: autosuspend support for USB HID 2009-03-25 17:57:57 +01:00
usbkbd.c HID: remove warn() macro from usb hid drivers 2008-10-14 23:51:03 +02:00
usbmouse.c HID: remove info() macro from usb HID drivers 2008-10-14 23:51:03 +02:00