aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2008-07-31 03:09:34 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-08-22 02:19:46 -0400
commitd127ea7b8643a93d14d1f3c542974407f14d3663 (patch)
tree2edbaf46167c86faad6b7645f3d3d2ef52bba84a /include/linux
parentda0e21d3fa2340114fe24821718a1b57123e4664 (diff)
libata: restore SControl on detach
Save SControl during probing and restore it on detach. This prevents adjustments made by libata drivers to seep into the next driver which gets attached (be it a libata one or not). It's not clear whether SControl also needs to be restored on suspend. The next system to have control (ACPI or kexec'd kernel) would probably like to see the original SControl value but there's no guarantee that a link is gonna keep working after SControl is adjusted without a reset and adding a reset and modified recovery cycle soley for this is an overkill. For now, do it only for detach. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/libata.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 5340d4c83fd9..80233fdc159f 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -647,6 +647,7 @@ struct ata_link {
647 647
648 unsigned int flags; /* ATA_LFLAG_xxx */ 648 unsigned int flags; /* ATA_LFLAG_xxx */
649 649
650 u32 saved_scontrol; /* SControl on probe */
650 unsigned int hw_sata_spd_limit; 651 unsigned int hw_sata_spd_limit;
651 unsigned int sata_spd_limit; 652 unsigned int sata_spd_limit;
652 unsigned int sata_spd; /* current SATA PHY speed */ 653 unsigned int sata_spd; /* current SATA PHY speed */