drm/radeon: implement ring saving on reset v4
[cascardo/linux.git] / drivers / gpu / drm / radeon / rs600.c
index e11bc46..5301b3d 100644 (file)
@@ -907,13 +907,11 @@ static int rs600_startup(struct radeon_device *rdev)
                return r;
        }
 
-       r = radeon_ib_pool_start(rdev);
-       if (r)
-               return r;
-
-       r = radeon_ib_ring_tests(rdev);
-       if (r)
+       r = radeon_ib_pool_init(rdev);
+       if (r) {
+               dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
                return r;
+       }
 
        r = r600_audio_init(rdev);
        if (r) {
@@ -955,7 +953,6 @@ int rs600_resume(struct radeon_device *rdev)
 
 int rs600_suspend(struct radeon_device *rdev)
 {
-       radeon_ib_pool_suspend(rdev);
        r600_audio_fini(rdev);
        r100_cp_disable(rdev);
        radeon_wb_disable(rdev);
@@ -969,7 +966,7 @@ void rs600_fini(struct radeon_device *rdev)
        r600_audio_fini(rdev);
        r100_cp_fini(rdev);
        radeon_wb_fini(rdev);
-       r100_ib_fini(rdev);
+       radeon_ib_pool_fini(rdev);
        radeon_gem_fini(rdev);
        rs600_gart_fini(rdev);
        radeon_irq_kms_fini(rdev);
@@ -1037,20 +1034,14 @@ int rs600_init(struct radeon_device *rdev)
                return r;
        rs600_set_safe_registers(rdev);
 
-       r = radeon_ib_pool_init(rdev);
        rdev->accel_working = true;
-       if (r) {
-               dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
-               rdev->accel_working = false;
-       }
-
        r = rs600_startup(rdev);
        if (r) {
                /* Somethings want wront with the accel init stop accel */
                dev_err(rdev->dev, "Disabling GPU acceleration\n");
                r100_cp_fini(rdev);
                radeon_wb_fini(rdev);
-               r100_ib_fini(rdev);
+               radeon_ib_pool_fini(rdev);
                rs600_gart_fini(rdev);
                radeon_irq_kms_fini(rdev);
                rdev->accel_working = false;