diff options
-rw-r--r-- | drivers/gpu/drm/radeon/r100.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r300.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r420.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r520.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_device.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_object.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_object.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rs400.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rs600.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rs690.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rv515.c | 2 |
11 files changed, 23 insertions, 7 deletions
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index b7baf16c11d7..824cc6480a06 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c | |||
@@ -3299,6 +3299,8 @@ int r100_resume(struct radeon_device *rdev) | |||
3299 | radeon_combios_asic_init(rdev->ddev); | 3299 | radeon_combios_asic_init(rdev->ddev); |
3300 | /* Resume clock after posting */ | 3300 | /* Resume clock after posting */ |
3301 | r100_clock_startup(rdev); | 3301 | r100_clock_startup(rdev); |
3302 | /* Initialize surface registers */ | ||
3303 | radeon_surface_init(rdev); | ||
3302 | return r100_startup(rdev); | 3304 | return r100_startup(rdev); |
3303 | } | 3305 | } |
3304 | 3306 | ||
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c index 86065dcc1982..83378c39d0e3 100644 --- a/drivers/gpu/drm/radeon/r300.c +++ b/drivers/gpu/drm/radeon/r300.c | |||
@@ -1250,6 +1250,8 @@ int r300_resume(struct radeon_device *rdev) | |||
1250 | radeon_combios_asic_init(rdev->ddev); | 1250 | radeon_combios_asic_init(rdev->ddev); |
1251 | /* Resume clock after posting */ | 1251 | /* Resume clock after posting */ |
1252 | r300_clock_startup(rdev); | 1252 | r300_clock_startup(rdev); |
1253 | /* Initialize surface registers */ | ||
1254 | radeon_surface_init(rdev); | ||
1253 | return r300_startup(rdev); | 1255 | return r300_startup(rdev); |
1254 | } | 1256 | } |
1255 | 1257 | ||
diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c index 162c3902fe69..c05a7270cf0c 100644 --- a/drivers/gpu/drm/radeon/r420.c +++ b/drivers/gpu/drm/radeon/r420.c | |||
@@ -231,7 +231,8 @@ int r420_resume(struct radeon_device *rdev) | |||
231 | } | 231 | } |
232 | /* Resume clock after posting */ | 232 | /* Resume clock after posting */ |
233 | r420_clock_resume(rdev); | 233 | r420_clock_resume(rdev); |
234 | 234 | /* Initialize surface registers */ | |
235 | radeon_surface_init(rdev); | ||
235 | return r420_startup(rdev); | 236 | return r420_startup(rdev); |
236 | } | 237 | } |
237 | 238 | ||
diff --git a/drivers/gpu/drm/radeon/r520.c b/drivers/gpu/drm/radeon/r520.c index 788eef5c2a08..0f3843b6dac7 100644 --- a/drivers/gpu/drm/radeon/r520.c +++ b/drivers/gpu/drm/radeon/r520.c | |||
@@ -220,6 +220,8 @@ int r520_resume(struct radeon_device *rdev) | |||
220 | atom_asic_init(rdev->mode_info.atom_context); | 220 | atom_asic_init(rdev->mode_info.atom_context); |
221 | /* Resume clock after posting */ | 221 | /* Resume clock after posting */ |
222 | rv515_clock_startup(rdev); | 222 | rv515_clock_startup(rdev); |
223 | /* Initialize surface registers */ | ||
224 | radeon_surface_init(rdev); | ||
223 | return r520_startup(rdev); | 225 | return r520_startup(rdev); |
224 | } | 226 | } |
225 | 227 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 410859ee112f..02bcdb1240c0 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c | |||
@@ -44,10 +44,11 @@ void radeon_surface_init(struct radeon_device *rdev) | |||
44 | if (rdev->family < CHIP_R600) { | 44 | if (rdev->family < CHIP_R600) { |
45 | int i; | 45 | int i; |
46 | 46 | ||
47 | for (i = 0; i < 8; i++) { | 47 | for (i = 0; i < RADEON_GEM_MAX_SURFACES; i++) { |
48 | WREG32(RADEON_SURFACE0_INFO + | 48 | if (rdev->surface_regs[i].bo) |
49 | i * (RADEON_SURFACE1_INFO - RADEON_SURFACE0_INFO), | 49 | radeon_bo_get_surface_reg(rdev->surface_regs[i].bo); |
50 | 0); | 50 | else |
51 | radeon_clear_surface_reg(rdev, i); | ||
51 | } | 52 | } |
52 | /* enable surfaces */ | 53 | /* enable surfaces */ |
53 | WREG32(RADEON_SURFACE_CNTL, 0); | 54 | WREG32(RADEON_SURFACE_CNTL, 0); |
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index ca172adfddb1..2040937682fd 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c | |||
@@ -378,7 +378,7 @@ int radeon_bo_fbdev_mmap(struct radeon_bo *bo, | |||
378 | return ttm_fbdev_mmap(vma, &bo->tbo); | 378 | return ttm_fbdev_mmap(vma, &bo->tbo); |
379 | } | 379 | } |
380 | 380 | ||
381 | static int radeon_bo_get_surface_reg(struct radeon_bo *bo) | 381 | int radeon_bo_get_surface_reg(struct radeon_bo *bo) |
382 | { | 382 | { |
383 | struct radeon_device *rdev = bo->rdev; | 383 | struct radeon_device *rdev = bo->rdev; |
384 | struct radeon_surface_reg *reg; | 384 | struct radeon_surface_reg *reg; |
diff --git a/drivers/gpu/drm/radeon/radeon_object.h b/drivers/gpu/drm/radeon/radeon_object.h index e9da13077e2f..f6b69c2c0d00 100644 --- a/drivers/gpu/drm/radeon/radeon_object.h +++ b/drivers/gpu/drm/radeon/radeon_object.h | |||
@@ -175,5 +175,5 @@ extern int radeon_bo_check_tiling(struct radeon_bo *bo, bool has_moved, | |||
175 | extern void radeon_bo_move_notify(struct ttm_buffer_object *bo, | 175 | extern void radeon_bo_move_notify(struct ttm_buffer_object *bo, |
176 | struct ttm_mem_reg *mem); | 176 | struct ttm_mem_reg *mem); |
177 | extern void radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo); | 177 | extern void radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo); |
178 | 178 | extern int radeon_bo_get_surface_reg(struct radeon_bo *bo); | |
179 | #endif | 179 | #endif |
diff --git a/drivers/gpu/drm/radeon/rs400.c b/drivers/gpu/drm/radeon/rs400.c index eda6d757b5c4..c1fcdddb6be6 100644 --- a/drivers/gpu/drm/radeon/rs400.c +++ b/drivers/gpu/drm/radeon/rs400.c | |||
@@ -430,6 +430,8 @@ int rs400_resume(struct radeon_device *rdev) | |||
430 | radeon_combios_asic_init(rdev->ddev); | 430 | radeon_combios_asic_init(rdev->ddev); |
431 | /* Resume clock after posting */ | 431 | /* Resume clock after posting */ |
432 | r300_clock_startup(rdev); | 432 | r300_clock_startup(rdev); |
433 | /* Initialize surface registers */ | ||
434 | radeon_surface_init(rdev); | ||
433 | return rs400_startup(rdev); | 435 | return rs400_startup(rdev); |
434 | } | 436 | } |
435 | 437 | ||
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index fd5ab01f6ad1..4f8ea4260572 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c | |||
@@ -586,6 +586,8 @@ int rs600_resume(struct radeon_device *rdev) | |||
586 | atom_asic_init(rdev->mode_info.atom_context); | 586 | atom_asic_init(rdev->mode_info.atom_context); |
587 | /* Resume clock after posting */ | 587 | /* Resume clock after posting */ |
588 | rv515_clock_startup(rdev); | 588 | rv515_clock_startup(rdev); |
589 | /* Initialize surface registers */ | ||
590 | radeon_surface_init(rdev); | ||
589 | return rs600_startup(rdev); | 591 | return rs600_startup(rdev); |
590 | } | 592 | } |
591 | 593 | ||
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index 98079367fbba..1e22f52d6039 100644 --- a/drivers/gpu/drm/radeon/rs690.c +++ b/drivers/gpu/drm/radeon/rs690.c | |||
@@ -658,6 +658,8 @@ int rs690_resume(struct radeon_device *rdev) | |||
658 | atom_asic_init(rdev->mode_info.atom_context); | 658 | atom_asic_init(rdev->mode_info.atom_context); |
659 | /* Resume clock after posting */ | 659 | /* Resume clock after posting */ |
660 | rv515_clock_startup(rdev); | 660 | rv515_clock_startup(rdev); |
661 | /* Initialize surface registers */ | ||
662 | radeon_surface_init(rdev); | ||
661 | return rs690_startup(rdev); | 663 | return rs690_startup(rdev); |
662 | } | 664 | } |
663 | 665 | ||
diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c index 6aa4ad87222a..59632a506b46 100644 --- a/drivers/gpu/drm/radeon/rv515.c +++ b/drivers/gpu/drm/radeon/rv515.c | |||
@@ -513,6 +513,8 @@ int rv515_resume(struct radeon_device *rdev) | |||
513 | atom_asic_init(rdev->mode_info.atom_context); | 513 | atom_asic_init(rdev->mode_info.atom_context); |
514 | /* Resume clock after posting */ | 514 | /* Resume clock after posting */ |
515 | rv515_clock_startup(rdev); | 515 | rv515_clock_startup(rdev); |
516 | /* Initialize surface registers */ | ||
517 | radeon_surface_init(rdev); | ||
516 | return rv515_startup(rdev); | 518 | return rv515_startup(rdev); |
517 | } | 519 | } |
518 | 520 | ||