if (r)
                return r;
  
 +      r = radeon_ib_pool_start(rdev);
 +      if (r)
 +              return r;
 +
 +      r = r600_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX);
 +      if (r) {
 +              DRM_ERROR("radeon: failed testing IB (%d).\n", r);
 +              rdev->accel_working = false;
++      }
++
+       r = r600_audio_init(rdev);
+       if (r) {
+               DRM_ERROR("radeon: audio init failed\n");
                return r;
        }
  
  
  int evergreen_suspend(struct radeon_device *rdev)
  {
 +      struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
 +
+       r600_audio_fini(rdev);
        /* FIXME: we should wait for ring to be empty */
 +      radeon_ib_pool_suspend(rdev);
 +      r600_blit_suspend(rdev);
        r700_cp_stop(rdev);
 -      rdev->cp.ready = false;
 +      ring->ready = false;
        evergreen_irq_suspend(rdev);
        radeon_wb_disable(rdev);
        evergreen_pcie_gart_disable(rdev);