[AGPGART] intel_agp: restore graphics device's pci space early in resume
authorWang Zhenyu <zhenyu.z.wang@intel.com>
Wed, 17 Jan 2007 03:07:54 +0000 (11:07 +0800)
committerDave Jones <davej@redhat.com>
Wed, 17 Jan 2007 05:26:30 +0000 (00:26 -0500)
Currently in resuming path graphics device's pci space restore is
behind host bridge, so resume function wrongly accesses graphics
device's space. This makes resuming failure which crashed X.
here's a patch to restore device's pci space early, which makes
resuming ok with X.

Signed-off-by: Wang Zhenyu <zhenyu.z.wang@intel.com>
Signed-off-by: Dave Jones <davej@redhat.com>
drivers/char/agp/intel-agp.c

index ab0a9c0ad7c00e77d07edf2027cc8eb15fe6ca98..a3011de51f7c049438ae51fae97f3652522cf9a4 100644 (file)
@@ -1955,6 +1955,15 @@ static int agp_intel_resume(struct pci_dev *pdev)
 
        pci_restore_state(pdev);
 
+       /* We should restore our graphics device's config space,
+        * as host bridge (00:00) resumes before graphics device (02:00),
+        * then our access to its pci space can work right.
+        */
+       if (intel_i810_private.i810_dev)
+               pci_restore_state(intel_i810_private.i810_dev);
+       if (intel_i830_private.i830_dev)
+               pci_restore_state(intel_i830_private.i830_dev);
+
        if (bridge->driver == &intel_generic_driver)
                intel_configure();
        else if (bridge->driver == &intel_850_driver)