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 11a1da0fc76..3be456b7819 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); |