[AGPGART] Suspend/Resume improvements for ATI AGP
authorDave Jones <davej@redhat.com>
Tue, 20 Jun 2006 04:42:04 +0000 (00:42 -0400)
committerDave Jones <davej@redhat.com>
Tue, 20 Jun 2006 04:42:04 +0000 (00:42 -0400)
Based on patches in the Ubuntu kernel.

Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Signed-off-by: Dave Jones <davej@redhat.com>
drivers/char/agp/ati-agp.c

index 6db9b7f436aa6ae71bc4d351a760ce2ce2f7342f..34bbd41f062a1d8cfaee76cd14fc3ce8fd58c006 100644 (file)
@@ -245,18 +245,20 @@ static int ati_configure(void)
 
 
 #ifdef CONFIG_PM
-static int agp_ati_resume(struct pci_dev *dev)
+static int agp_ati_suspend(struct pci_dev *dev, pm_message_t state)
 {
-       pci_restore_state(dev);
+       pci_save_state(dev);
+       pci_set_power_state (pdev, 3);
 
-       return ati_configure();
+       return 0;
 }
 
-static int agp_ati_suspend(struct pci_dev *dev, pm_message_t state)
+static int agp_ati_resume(struct pci_dev *dev)
 {
-       pci_save_state(dev);
+       pci_set_power_state (pdev, 0);
+       pci_restore_state(dev);
 
-       return 0;
+       return ati_configure();
 }
 #endif
 
@@ -545,8 +547,8 @@ static struct pci_driver agp_ati_pci_driver = {
        .probe          = agp_ati_probe,
        .remove         = agp_ati_remove,
 #ifdef CONFIG_PM
-       .resume         = agp_ati_resume,
        .suspend        = agp_ati_suspend,
+       .resume         = agp_ati_resume,
 #endif
 };