aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r520.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/r520.c')
-rw-r--r--drivers/gpu/drm/radeon/r520.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r520.c b/drivers/gpu/drm/radeon/r520.c
index 39b31544c6e7..4ae1615e752f 100644
--- a/drivers/gpu/drm/radeon/r520.c
+++ b/drivers/gpu/drm/radeon/r520.c
@@ -202,9 +202,15 @@ static int r520_startup(struct radeon_device *rdev)
202 dev_err(rdev->dev, "failed initializing CP (%d).\n", r); 202 dev_err(rdev->dev, "failed initializing CP (%d).\n", r);
203 return r; 203 return r;
204 } 204 }
205 r = r100_ib_init(rdev); 205
206 r = radeon_ib_pool_start(rdev);
207 if (r)
208 return r;
209
210 r = r100_ib_test(rdev);
206 if (r) { 211 if (r) {
207 dev_err(rdev->dev, "failed initializing IB (%d).\n", r); 212 dev_err(rdev->dev, "failed testing IB (%d).\n", r);
213 rdev->accel_working = false;
208 return r; 214 return r;
209 } 215 }
210 return 0; 216 return 0;
@@ -229,6 +235,8 @@ int r520_resume(struct radeon_device *rdev)
229 rv515_clock_startup(rdev); 235 rv515_clock_startup(rdev);
230 /* Initialize surface registers */ 236 /* Initialize surface registers */
231 radeon_surface_init(rdev); 237 radeon_surface_init(rdev);
238
239 rdev->accel_working = true;
232 return r520_startup(rdev); 240 return r520_startup(rdev);
233} 241}
234 242
@@ -298,7 +306,14 @@ int r520_init(struct radeon_device *rdev)
298 if (r) 306 if (r)
299 return r; 307 return r;
300 rv515_set_safe_registers(rdev); 308 rv515_set_safe_registers(rdev);
309
310 r = radeon_ib_pool_init(rdev);
301 rdev->accel_working = true; 311 rdev->accel_working = true;
312 if (r) {
313 dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
314 rdev->accel_working = false;
315 }
316
302 r = r520_startup(rdev); 317 r = r520_startup(rdev);
303 if (r) { 318 if (r) {
304 /* Somethings want wront with the accel init stop accel */ 319 /* Somethings want wront with the accel init stop accel */