ahci: implement aggressive SATA device sleep support
authorShane Huang <shane.huang@amd.com>
Fri, 7 Sep 2012 14:40:01 +0000 (22:40 +0800)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 13 Sep 2012 05:08:53 +0000 (01:08 -0400)
commit65fe1f0f66a57380229a4ced844188103135f37b
treeeb96e6c8de3bf8c4697618c8ee1dce4bd6d6a9ea
parent583661a89ed2e484bd295e7b4606099340478c38
ahci: implement aggressive SATA device sleep support

Device Sleep is a feature as described in AHCI 1.3.1 Technical Proposal.
This feature enables an HBA and SATA storage device to enter the DevSleep
interface state, enabling lower power SATA-based systems.

Aggressive Device Sleep enables the HBA to assert the DEVSLP signal as
soon as there are no commands outstanding to the device and the port
specific Device Sleep idle timer has expired. This enables autonomous
entry into the DevSleep interface state without waiting for software
in power sensitive systems.

This patch enables Aggressive Device Sleep only if both host controller
and device support it.

Tested on AMD reference board together with Device Sleep supported device
sample.

Signed-off-by: Shane Huang <shane.huang@amd.com>
Reviewed-by: Aaron Lu <aaron.lwe@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/ahci.h
drivers/ata/libahci.c
drivers/ata/libata-core.c
drivers/ata/libata-eh.c
drivers/ata/libata.h
include/linux/ata.h
include/linux/libata.h