radeon: move memcpy until after CP is stopped
authorDave Airlie <airlied@redhat.com>
Thu, 16 Oct 2008 00:52:28 +0000 (10:52 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 16 Oct 2008 00:52:28 +0000 (10:52 +1000)
linux-core/radeon_pm.c

index de10779..1a814d9 100644 (file)
@@ -63,16 +63,16 @@ int radeon_suspend(struct drm_device *dev, pm_message_t state)
        if (!(dev_priv->flags & RADEON_IS_IGP))
                drm_bo_evict_mm(dev, DRM_BO_MEM_VRAM, 0);
 
-       if (dev_priv->flags & RADEON_IS_PCIE) {
-               memcpy_fromio(dev_priv->mm.pcie_table_backup, dev_priv->mm.pcie_table.kmap.virtual, RADEON_PCIGART_TABLE_SIZE);
-       }
-
        dev_priv->pmregs.crtc_ext_cntl = RADEON_READ(RADEON_CRTC_EXT_CNTL);
        for (i = 0; i < 8; i++)
                dev_priv->pmregs.bios_scratch[i] = RADEON_READ(RADEON_BIOS_0_SCRATCH + (i * 4));
 
        radeon_modeset_cp_suspend(dev);
 
+       if (dev_priv->flags & RADEON_IS_PCIE) {
+               memcpy_fromio(dev_priv->mm.pcie_table_backup, dev_priv->mm.pcie_table.kmap.virtual, RADEON_PCIGART_TABLE_SIZE);
+       }
+
        pci_save_state(dev->pdev);
 
        if (state.event == PM_EVENT_SUSPEND) {