summaryrefslogtreecommitdiff
path: root/drivers/ata/pata_hpt3x3.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-12-03 22:32:10 +0300
committerJeff Garzik <jgarzik@redhat.com>2009-12-03 23:58:53 +0300
commit3915044468217d9c224b824c308e4d112666f58d (patch)
treef4956b551d1c54858817312711c401e0dcdea3e6 /drivers/ata/pata_hpt3x3.c
parent940a68de56c1952c29d9f3c1a769a82b1bdd2b67 (diff)
downloadlinux-3915044468217d9c224b824c308e4d112666f58d.tar.xz
pata_hpt3x3: Power Management fix
Fix ->resume method to re-enable & re-init PCI device properly before doing chipset specific setup. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/pata_hpt3x3.c')
-rw-r--r--drivers/ata/pata_hpt3x3.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/ata/pata_hpt3x3.c b/drivers/ata/pata_hpt3x3.c
index 7e310253b36b..c86c71639a95 100644
--- a/drivers/ata/pata_hpt3x3.c
+++ b/drivers/ata/pata_hpt3x3.c
@@ -255,8 +255,17 @@ static int hpt3x3_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
#ifdef CONFIG_PM
static int hpt3x3_reinit_one(struct pci_dev *dev)
{
+ struct ata_host *host = dev_get_drvdata(&dev->dev);
+ int rc;
+
+ rc = ata_pci_device_do_resume(dev);
+ if (rc)
+ return rc;
+
hpt3x3_init_chipset(dev);
- return ata_pci_device_resume(dev);
+
+ ata_host_resume(host);
+ return 0;
}
#endif