aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-07-03 03:07:26 -0400
committerJeff Garzik <jeff@garzik.org>2006-07-05 22:16:28 -0400
commitd6f26d1f1f1128a896f38a7f8426daed0a1205a2 (patch)
treeee86bb8f6fff0e1c8df78978ae7f402fbc1dc454 /include/linux
parent02670bf379267f55a43aa57f6895689697e90eb3 (diff)
[PATCH] libata: reimplement per-dev PM
Reimplement per-dev PM. The original implementation directly put the device into suspended mode and didn't synchronize w/ EH operations including hotplug. This patch reimplements ata_scsi_device_suspend() and ata_scsi_device_resume() such that they request EH to perform the respective operations. Both functions synchronize with hotplug such that it doesn't operate on detached devices. Suspend waits for completion but resume just issues request and returns. This allows parallel wake up of devices and thus speeds up system resume. Due to sdev detach synchronization, it's not feasible to separate out EH requesting from sdev handling; thus, ata_device_suspend/resume() are removed and everything is implemented in the respective libata-scsi functions. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/libata.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 363c7501843..5ac26260819 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -687,8 +687,6 @@ extern int ata_port_online(struct ata_port *ap);
687extern int ata_port_offline(struct ata_port *ap); 687extern int ata_port_offline(struct ata_port *ap);
688extern int ata_scsi_device_resume(struct scsi_device *); 688extern int ata_scsi_device_resume(struct scsi_device *);
689extern int ata_scsi_device_suspend(struct scsi_device *, pm_message_t state); 689extern int ata_scsi_device_suspend(struct scsi_device *, pm_message_t state);
690extern int ata_device_resume(struct ata_device *);
691extern int ata_device_suspend(struct ata_device *, pm_message_t state);
692extern int ata_ratelimit(void); 690extern int ata_ratelimit(void);
693extern unsigned int ata_busy_sleep(struct ata_port *ap, 691extern unsigned int ata_busy_sleep(struct ata_port *ap,
694 unsigned long timeout_pat, 692 unsigned long timeout_pat,