diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/rs600.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index 11a1da0fc76b..3be456b78191 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c | |||
| @@ -45,6 +45,20 @@ | |||
| 45 | void rs600_gpu_init(struct radeon_device *rdev); | 45 | void rs600_gpu_init(struct radeon_device *rdev); |
| 46 | int rs600_mc_wait_for_idle(struct radeon_device *rdev); | 46 | int rs600_mc_wait_for_idle(struct radeon_device *rdev); |
| 47 | 47 | ||
| 48 | int rs600_mc_init(struct radeon_device *rdev) | ||
| 49 | { | ||
| 50 | /* read back the MC value from the hw */ | ||
| 51 | uint32_t mc_fb_loc; | ||
| 52 | int r; | ||
| 53 | |||
| 54 | mc_fb_loc = RREG32_MC(R_000004_MC_FB_LOCATION); | ||
| 55 | rdev->mc.vram_location = G_000004_MC_FB_START(mc_fb_loc) << 16; | ||
| 56 | rdev->mc.gtt_location = 0xffffffffUL; | ||
| 57 | r = radeon_mc_setup(rdev); | ||
| 58 | if (r) | ||
| 59 | return r; | ||
| 60 | return 0; | ||
| 61 | } | ||
| 48 | /* | 62 | /* |
| 49 | * GART. | 63 | * GART. |
| 50 | */ | 64 | */ |
| @@ -505,7 +519,7 @@ int rs600_init(struct radeon_device *rdev) | |||
| 505 | /* Get vram informations */ | 519 | /* Get vram informations */ |
| 506 | rs600_vram_info(rdev); | 520 | rs600_vram_info(rdev); |
| 507 | /* Initialize memory controller (also test AGP) */ | 521 | /* Initialize memory controller (also test AGP) */ |
| 508 | r = r420_mc_init(rdev); | 522 | r = rs600_mc_init(rdev); |
| 509 | if (r) | 523 | if (r) |
| 510 | return r; | 524 | return r; |
| 511 | rs600_debugfs(rdev); | 525 | rs600_debugfs(rdev); |
