diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-12-03 16:28:02 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-03 19:32:35 -0500 |
commit | 0088dbdb809e8799cb8f26da5ac64b15201fa99d (patch) | |
tree | 3d38533b297da8d47f663ffd79d7dd1cc3da31a5 /drivers/gpu/drm/radeon/rs600.c | |
parent | 722f29434e72188b2d20f9b41f4b5952073ed568 (diff) |
drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/rs600.c')
-rw-r--r-- | drivers/gpu/drm/radeon/rs600.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index 00bc71fe98d1..c4bdfaf9b54c 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c | |||
@@ -306,9 +306,7 @@ int rs600_mc_wait_for_idle(struct radeon_device *rdev) | |||
306 | 306 | ||
307 | void rs600_gpu_init(struct radeon_device *rdev) | 307 | void rs600_gpu_init(struct radeon_device *rdev) |
308 | { | 308 | { |
309 | /* FIXME: HDP same place on rs600 ? */ | ||
310 | r100_hdp_reset(rdev); | 309 | r100_hdp_reset(rdev); |
311 | /* FIXME: is this correct ? */ | ||
312 | r420_pipes_init(rdev); | 310 | r420_pipes_init(rdev); |
313 | /* Wait for mc idle */ | 311 | /* Wait for mc idle */ |
314 | if (rs600_mc_wait_for_idle(rdev)) | 312 | if (rs600_mc_wait_for_idle(rdev)) |
@@ -317,7 +315,6 @@ void rs600_gpu_init(struct radeon_device *rdev) | |||
317 | 315 | ||
318 | void rs600_vram_info(struct radeon_device *rdev) | 316 | void rs600_vram_info(struct radeon_device *rdev) |
319 | { | 317 | { |
320 | /* FIXME: to do or is these values sane ? */ | ||
321 | rdev->mc.vram_is_ddr = true; | 318 | rdev->mc.vram_is_ddr = true; |
322 | rdev->mc.vram_width = 128; | 319 | rdev->mc.vram_width = 128; |
323 | 320 | ||
@@ -326,6 +323,12 @@ void rs600_vram_info(struct radeon_device *rdev) | |||
326 | 323 | ||
327 | rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0); | 324 | rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0); |
328 | rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0); | 325 | rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0); |
326 | |||
327 | if (rdev->mc.mc_vram_size > rdev->mc.aper_size) | ||
328 | rdev->mc.mc_vram_size = rdev->mc.aper_size; | ||
329 | |||
330 | if (rdev->mc.real_vram_size > rdev->mc.aper_size) | ||
331 | rdev->mc.real_vram_size = rdev->mc.aper_size; | ||
329 | } | 332 | } |
330 | 333 | ||
331 | void rs600_bandwidth_update(struct radeon_device *rdev) | 334 | void rs600_bandwidth_update(struct radeon_device *rdev) |