virtio-pci: S3 support
Amit Shah [Thu, 29 Mar 2012 07:21:41 +0000 (12:21 +0530)]
There's no difference in supporting S3 and S4 for virtio devices: the
vqs have to be re-created as the device has to be assumed to be reset at
restore-time.  Since S4 already handles this situation, we can directly
use the same code and callbacks for S3 support.

Signed-off-by: Amit Shah <amit.shah@redhat.com>

drivers/virtio/virtio_pci.c

index 982d6c9..0fa4f85 100644 (file)
@@ -720,24 +720,6 @@ static void __devexit virtio_pci_remove(struct pci_dev *pci_dev)
 }
 
 #ifdef CONFIG_PM
-static int virtio_pci_suspend(struct device *dev)
-{
-       struct pci_dev *pci_dev = to_pci_dev(dev);
-
-       pci_save_state(pci_dev);
-       pci_set_power_state(pci_dev, PCI_D3hot);
-       return 0;
-}
-
-static int virtio_pci_resume(struct device *dev)
-{
-       struct pci_dev *pci_dev = to_pci_dev(dev);
-
-       pci_restore_state(pci_dev);
-       pci_set_power_state(pci_dev, PCI_D0);
-       return 0;
-}
-
 static int virtio_pci_freeze(struct device *dev)
 {
        struct pci_dev *pci_dev = to_pci_dev(dev);
@@ -786,12 +768,12 @@ static int virtio_pci_restore(struct device *dev)
 }
 
 static const struct dev_pm_ops virtio_pci_pm_ops = {
-       .suspend        = virtio_pci_suspend,
-       .resume         = virtio_pci_resume,
+       .suspend        = virtio_pci_freeze,
+       .resume         = virtio_pci_restore,
        .freeze         = virtio_pci_freeze,
        .thaw           = virtio_pci_restore,
        .restore        = virtio_pci_restore,
-       .poweroff       = virtio_pci_suspend,
+       .poweroff       = virtio_pci_freeze,
 };
 #endif