summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-10-16 10:52:28 +1000
committerDave Airlie <airlied@redhat.com>2008-10-16 10:52:28 +1000
commit3e3280eccc38cd080cbab7b471aad1b9cd12fd1b (patch)
tree1d69bd505fbfc16919ec17b3294fa8ec4ef9b9ef
parent09f99dc5febecac63d8c636abadea53e89d879aa (diff)
radeon: move memcpy until after CP is stopped
-rw-r--r--linux-core/radeon_pm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/linux-core/radeon_pm.c b/linux-core/radeon_pm.c
index de107797..1a814d91 100644
--- a/linux-core/radeon_pm.c
+++ b/linux-core/radeon_pm.c
@@ -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) {