diff options
author | Tejun Heo <htejun@gmail.com> | 2007-05-04 15:27:47 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-05-11 18:01:03 -0400 |
commit | 9666f4009c22f6520ac3fb8a19c9e32ab973e828 (patch) | |
tree | eaac13cd5890af6298e5576a48c29891f0890bd1 /drivers/ata/pata_rz1000.c | |
parent | 0a3fd051c7036ef71b58863f8e5da7c3dabd9d3f (diff) |
libata: reimplement suspend/resume support using sdev->manage_start_stop
Reimplement suspend/resume support using sdev->manage_start_stop.
* Device suspend/resume is now SCSI layer's responsibility and the
code is simplified a lot.
* DPM is dropped. This also simplifies code a lot. Suspend/resume
status is port-wide now.
* ata_scsi_device_suspend/resume() and ata_dev_ready() removed.
* Resume now has to wait for disk to spin up before proceeding. I
couldn't find easy way out as libata is in EH waiting for the
disk to be ready and sd is waiting for EH to complete to issue
START_STOP.
* sdev->manage_start_stop is set to 1 in ata_scsi_slave_config().
This fixes spindown on shutdown and suspend-to-disk.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/pata_rz1000.c')
-rw-r--r-- | drivers/ata/pata_rz1000.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/ata/pata_rz1000.c b/drivers/ata/pata_rz1000.c index 85c45290eeee..97785b4f1efa 100644 --- a/drivers/ata/pata_rz1000.c +++ b/drivers/ata/pata_rz1000.c | |||
@@ -40,7 +40,7 @@ static int rz1000_set_mode(struct ata_port *ap, struct ata_device **unused) | |||
40 | 40 | ||
41 | for (i = 0; i < ATA_MAX_DEVICES; i++) { | 41 | for (i = 0; i < ATA_MAX_DEVICES; i++) { |
42 | struct ata_device *dev = &ap->device[i]; | 42 | struct ata_device *dev = &ap->device[i]; |
43 | if (ata_dev_ready(dev)) { | 43 | if (ata_dev_enabled(dev)) { |
44 | /* We don't really care */ | 44 | /* We don't really care */ |
45 | dev->pio_mode = XFER_PIO_0; | 45 | dev->pio_mode = XFER_PIO_0; |
46 | dev->xfer_mode = XFER_PIO_0; | 46 | dev->xfer_mode = XFER_PIO_0; |
@@ -69,10 +69,6 @@ static struct scsi_host_template rz1000_sht = { | |||
69 | .slave_configure = ata_scsi_slave_config, | 69 | .slave_configure = ata_scsi_slave_config, |
70 | .slave_destroy = ata_scsi_slave_destroy, | 70 | .slave_destroy = ata_scsi_slave_destroy, |
71 | .bios_param = ata_std_bios_param, | 71 | .bios_param = ata_std_bios_param, |
72 | #ifdef CONFIG_PM | ||
73 | .resume = ata_scsi_device_resume, | ||
74 | .suspend = ata_scsi_device_suspend, | ||
75 | #endif | ||
76 | }; | 72 | }; |
77 | 73 | ||
78 | static struct ata_port_operations rz1000_port_ops = { | 74 | static struct ata_port_operations rz1000_port_ops = { |