diff options
author | Shaohua Li <shaohua.li@intel.com> | 2007-10-11 17:53:58 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-10-11 17:53:58 -0400 |
commit | 5e32132befa5d2cefadf3141fee0bbb40cd11f0e (patch) | |
tree | 7bf2002e49b169d24b87a8fe71364875e04d1e90 /include/linux | |
parent | 8cb1f567f4c0a2fde9cbf77c2af888a28cab3423 (diff) |
ide: hook ACPI _PSx method to IDE power on/off
ACPI spec defines the sequence of IDE power on/off:
Powering down:
Call _GTM.
Power down drive (calls _PS3 method and turns off power planes).
Powering up:
Power up drive (calls _PS0 method if present and turns on power planes).
Call _STM passing info from _GTM (possibly modified), with ID data from
each drive.
Initialize the channel.
May modify the results of _GTF.
For each drive:
Call _GTF.
Execute task file (possibly modified).
This patch adds the missed _PS0/_PS3 methods call.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Acked-by: Len Brown <len.brown@intel.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/ide.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h index 0665428356d3..80ea946282d7 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1338,11 +1338,13 @@ extern int ide_acpi_exec_tfs(ide_drive_t *drive); | |||
1338 | extern void ide_acpi_get_timing(ide_hwif_t *hwif); | 1338 | extern void ide_acpi_get_timing(ide_hwif_t *hwif); |
1339 | extern void ide_acpi_push_timing(ide_hwif_t *hwif); | 1339 | extern void ide_acpi_push_timing(ide_hwif_t *hwif); |
1340 | extern void ide_acpi_init(ide_hwif_t *hwif); | 1340 | extern void ide_acpi_init(ide_hwif_t *hwif); |
1341 | extern void ide_acpi_set_state(ide_hwif_t *hwif, int on); | ||
1341 | #else | 1342 | #else |
1342 | static inline int ide_acpi_exec_tfs(ide_drive_t *drive) { return 0; } | 1343 | static inline int ide_acpi_exec_tfs(ide_drive_t *drive) { return 0; } |
1343 | static inline void ide_acpi_get_timing(ide_hwif_t *hwif) { ; } | 1344 | static inline void ide_acpi_get_timing(ide_hwif_t *hwif) { ; } |
1344 | static inline void ide_acpi_push_timing(ide_hwif_t *hwif) { ; } | 1345 | static inline void ide_acpi_push_timing(ide_hwif_t *hwif) { ; } |
1345 | static inline void ide_acpi_init(ide_hwif_t *hwif) { ; } | 1346 | static inline void ide_acpi_init(ide_hwif_t *hwif) { ; } |
1347 | static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {} | ||
1346 | #endif | 1348 | #endif |
1347 | 1349 | ||
1348 | extern int ide_hwif_request_regions(ide_hwif_t *hwif); | 1350 | extern int ide_hwif_request_regions(ide_hwif_t *hwif); |