pata_rz1000: Power Management fix
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 3 Dec 2009 19:32:13 +0000 (20:32 +0100)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 3 Dec 2009 21:12:35 +0000 (16:12 -0500)
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>
drivers/ata/pata_rz1000.c

index a5e4dfe60b41f0b19f3fd1bc71975797ca5a96e8..2932998fc4c610b3505b2c3a0b07a51cef5b72d1 100644 (file)
@@ -105,11 +105,20 @@ static int rz1000_init_one (struct pci_dev *pdev, const struct pci_device_id *en
 #ifdef CONFIG_PM
 static int rz1000_reinit_one(struct pci_dev *pdev)
 {
+       struct ata_host *host = dev_get_drvdata(&pdev->dev);
+       int rc;
+
+       rc = ata_pci_device_do_resume(pdev);
+       if (rc)
+               return rc;
+
        /* If this fails on resume (which is a "cant happen" case), we
           must stop as any progress risks data loss */
        if (rz1000_fifo_disable(pdev))
                panic("rz1000 fifo");
-       return ata_pci_device_resume(pdev);
+
+       ata_host_resume(host);
+       return 0;
 }
 #endif