aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r100.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/r100.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/r100.c')
-rw-r--r--drivers/gpu/drm/radeon/r100.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index 626e79023e30..c0d4650cdb79 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -3375,7 +3375,6 @@ int r100_suspend(struct radeon_device *rdev)
3375 3375
3376void r100_fini(struct radeon_device *rdev) 3376void r100_fini(struct radeon_device *rdev)
3377{ 3377{
3378 r100_suspend(rdev);
3379 r100_cp_fini(rdev); 3378 r100_cp_fini(rdev);
3380 r100_wb_fini(rdev); 3379 r100_wb_fini(rdev);
3381 r100_ib_fini(rdev); 3380 r100_ib_fini(rdev);
@@ -3487,13 +3486,12 @@ int r100_init(struct radeon_device *rdev)
3487 if (r) { 3486 if (r) {
3488 /* Somethings want wront with the accel init stop accel */ 3487 /* Somethings want wront with the accel init stop accel */
3489 dev_err(rdev->dev, "Disabling GPU acceleration\n"); 3488 dev_err(rdev->dev, "Disabling GPU acceleration\n");
3490 r100_suspend(rdev);
3491 r100_cp_fini(rdev); 3489 r100_cp_fini(rdev);
3492 r100_wb_fini(rdev); 3490 r100_wb_fini(rdev);
3493 r100_ib_fini(rdev); 3491 r100_ib_fini(rdev);
3492 radeon_irq_kms_fini(rdev);
3494 if (rdev->flags & RADEON_IS_PCI) 3493 if (rdev->flags & RADEON_IS_PCI)
3495 r100_pci_gart_fini(rdev); 3494 r100_pci_gart_fini(rdev);
3496 radeon_irq_kms_fini(rdev);
3497 rdev->accel_working = false; 3495 rdev->accel_working = false;
3498 } 3496 }
3499 return 0; 3497 return 0;