aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r300.c
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-02-02 05:51:45 -0500
committerDave Airlie <airlied@redhat.com>2010-02-04 20:49:52 -0500
commit655efd3dc92cd0d37292157178d33deb0430aeaa (patch)
tree9177003ca9a830e4cb976b93e491c53ceccb49df /drivers/gpu/drm/radeon/r300.c
parent94cf6434a1bc5958d5da3be62f1272792dada2bf (diff)
drm/radeon/kms: don't call suspend path before cleaning up GPU
In suspend path we unmap the GART table while in cleaning up path we will unbind buffer and thus try to write to unmapped GART leading to oops. In order to avoid this we don't call the suspend path in cleanup path. Cleanup path is clever enough to desactive GPU like the suspend path is doing, thus this was redondant. Tested on: RV370, R420, RV515, RV570, RV610, RV770 (all PCIE) Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r300.c')
-rw-r--r--drivers/gpu/drm/radeon/r300.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c
index 0051d11b907c..e699e6d053dd 100644
--- a/drivers/gpu/drm/radeon/r300.c
+++ b/drivers/gpu/drm/radeon/r300.c
@@ -1327,7 +1327,6 @@ int r300_suspend(struct radeon_device *rdev)
1327 1327
1328void r300_fini(struct radeon_device *rdev) 1328void r300_fini(struct radeon_device *rdev)
1329{ 1329{
1330 r300_suspend(rdev);
1331 r100_cp_fini(rdev); 1330 r100_cp_fini(rdev);
1332 r100_wb_fini(rdev); 1331 r100_wb_fini(rdev);
1333 r100_ib_fini(rdev); 1332 r100_ib_fini(rdev);
@@ -1418,15 +1417,15 @@ int r300_init(struct radeon_device *rdev)
1418 if (r) { 1417 if (r) {
1419 /* Somethings want wront with the accel init stop accel */ 1418 /* Somethings want wront with the accel init stop accel */
1420 dev_err(rdev->dev, "Disabling GPU acceleration\n"); 1419 dev_err(rdev->dev, "Disabling GPU acceleration\n");
1421 r300_suspend(rdev);
1422 r100_cp_fini(rdev); 1420 r100_cp_fini(rdev);
1423 r100_wb_fini(rdev); 1421 r100_wb_fini(rdev);
1424 r100_ib_fini(rdev); 1422 r100_ib_fini(rdev);
1423 radeon_irq_kms_fini(rdev);
1425 if (rdev->flags & RADEON_IS_PCIE) 1424 if (rdev->flags & RADEON_IS_PCIE)
1426 rv370_pcie_gart_fini(rdev); 1425 rv370_pcie_gart_fini(rdev);
1427 if (rdev->flags & RADEON_IS_PCI) 1426 if (rdev->flags & RADEON_IS_PCI)
1428 r100_pci_gart_fini(rdev); 1427 r100_pci_gart_fini(rdev);
1429 radeon_irq_kms_fini(rdev); 1428 radeon_agp_fini(rdev);
1430 rdev->accel_working = false; 1429 rdev->accel_working = false;
1431 } 1430 }
1432 return 0; 1431 return 0;