diff options
author | Tejun Heo <tj@kernel.org> | 2008-07-31 16:09:34 +0900 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-08-22 02:19:46 -0400 |
commit | d127ea7b8643a93d14d1f3c542974407f14d3663 (patch) | |
tree | 2edbaf46167c86faad6b7645f3d3d2ef52bba84a /include/linux/libata.h | |
parent | da0e21d3fa2340114fe24821718a1b57123e4664 (diff) | |
download | linux-d127ea7b8643a93d14d1f3c542974407f14d3663.tar.gz linux-d127ea7b8643a93d14d1f3c542974407f14d3663.tar.bz2 linux-d127ea7b8643a93d14d1f3c542974407f14d3663.zip |
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/libata.h')
-rw-r--r-- | include/linux/libata.h | 1 |
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 { unsigned int flags; /* ATA_LFLAG_xxx */ + u32 saved_scontrol; /* SControl on probe */ unsigned int hw_sata_spd_limit; unsigned int sata_spd_limit; unsigned int sata_spd; /* current SATA PHY speed */ |