Hello, all. This is the first take of powersave patchset. It implements runtime link-level power management. To avoid confusion with regular device/controller power management (suspend/resume), it's callsed powersave. It primarily implements partial/slumber/phy-off power states SATA standard specifies but if LLD has different way of implementing link powersave, it's allowed to. Both host-initiated and device-initiated operations are supported. This patchset contains the following patches. #01-07 : misc fixes/preps for powersave #08-10 : implements core powersave infrastructure #11-12 : implement powersave feature for ahci and sata_sil24 Powersave can be configured at boot time or while running by writing to kernel module parameter /sys/module/libata/parameters/powersave. The following powersave modes are supported. * none : no powersave, link is powered up all the time * HIPS : host-initiated powersave * DIPS : device-initiated powersave * static : no powersave on occupied link, power off empty link * HIPS/static : HIPS on occupied link, power off empty link * DIPS/static : DIPS on occupied link, power off empty link For more information, please read head messages of individual patches. All supported modes are tested on ICH7R AHCI, ICH6M AHCI, SiI3124, SiI3132. Unfortunately SiI3112/4 family controllers don't support HIPS and choke on DIPS and thus dropped from supported list. Here are some results on my ICH6M which can only do static PS. Each entry is average of 10 battery discharge rate readings 10 secs apart. none static diff pct --------------------------------- 1140.1mA / 1222.7mA 82.6mA 6.8% 1145.4mA / 1209.8mA 64.4mA 5.3% 1148.6mA / 1209.9mA 61.3mA 5.0% 1150.8mA / 1217.2mA 66.4mA 5.5% l153.0mA / 1220.5mA 67.5mA 5.5% I'd really like to see how much power DIPS/HIPS can save. If you have a notebook with smarter ICH, please don't hesitate to benchmark. This patchset is against. upstream (309bade002e9226781c2d7a015340d0089e399b5) + [1] fix-autopsy patch + [2] fix-eh_skip_recovery patch + [3] improve-EH-actions-and-EHI-handling patch + [4] PHY-reset-requires-writing-0x4-to-SControl This patchset is also available in the following git tree. http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=powersave git://htj.dyndns.org/libata-tj powersave Thanks. -- tejun [1] http://article.gmane.org/gmane.linux.ide/11966 [2] http://article.gmane.org/gmane.linux.ide/12001 [3] http://article.gmane.org/gmane.linux.ide/12002 [4] http://article.gmane.org/gmane.linux.ide/11870 - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html