Hi all.

This is a preliminary patch against 2.4.2 to uhci.c that puts the host
controller into global suspend when there are no devices attached. This
conserves power on mobile systems, and because suspending the host
controller ceases UHCI's incessant busmastering activity, it allows the CPU
to enter a deeper idle state.

The main problem with this implementation is that it just looks at the 2
root hub ports and suspends if nothing is connected. Ideally, it would be
smart enough to realize it can also suspend when only hubs are present, or
when all devices on the USB are also suspended. I hope a USB expert can add
these enhancements, as it's beyond me.

You should be able to verify this patch is working in one of two ways:
1) Turn on USB debug messages, and look for suspend_hc and wakeup_hc
messages
2) Download the latest ACPI patch from
http://developer.intel.com/technology/iapc/acpi/downloads.htm and verify
that /proc/acpi/processor/0/status shows mostly 0's for busmastering
activity (as opposed to mostly F's) when no USB devices are connected.

Thanks -- Regards -- Andy

uhci.diff

Reply via email to