aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-12-03 16:18:19 -0500
committerDave Airlie <airlied@redhat.com>2009-12-03 19:32:26 -0500
commit722f29434e72188b2d20f9b41f4b5952073ed568 (patch)
tree24802abbe53dc69a5f5b7914c134058a06dd9b2d /drivers/gpu/drm
parent8de21525439e6b5bb8d8c81e49094d867bf82f6d (diff)
drm/radeon/kms: fix vram setup on rs600
also fix up rs690 mem width. should fix fdo bug 25408 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')
-rw-r--r--drivers/gpu/drm/radeon/rs600.c6
-rw-r--r--drivers/gpu/drm/radeon/rs690.c10
2 files changed, 8 insertions, 8 deletions
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c
index c97eb63a21d2..00bc71fe98d1 100644
--- a/drivers/gpu/drm/radeon/rs600.c
+++ b/drivers/gpu/drm/radeon/rs600.c
@@ -320,6 +320,12 @@ void rs600_vram_info(struct radeon_device *rdev)
320 /* FIXME: to do or is these values sane ? */ 320 /* FIXME: to do or is these values sane ? */
321 rdev->mc.vram_is_ddr = true; 321 rdev->mc.vram_is_ddr = true;
322 rdev->mc.vram_width = 128; 322 rdev->mc.vram_width = 128;
323
324 rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE);
325 rdev->mc.mc_vram_size = rdev->mc.real_vram_size;
326
327 rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0);
328 rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0);
323} 329}
324 330
325void rs600_bandwidth_update(struct radeon_device *rdev) 331void rs600_bandwidth_update(struct radeon_device *rdev)
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
index e7a5f87c23fe..81b8efcac4e8 100644
--- a/drivers/gpu/drm/radeon/rs690.c
+++ b/drivers/gpu/drm/radeon/rs690.c
@@ -131,19 +131,13 @@ void rs690_pm_info(struct radeon_device *rdev)
131 131
132void rs690_vram_info(struct radeon_device *rdev) 132void rs690_vram_info(struct radeon_device *rdev)
133{ 133{
134 uint32_t tmp;
135 fixed20_12 a; 134 fixed20_12 a;
136 135
137 rs400_gart_adjust_size(rdev); 136 rs400_gart_adjust_size(rdev);
138 /* DDR for all card after R300 & IGP */ 137 /* DDR for all card after R300 & IGP */
139 rdev->mc.vram_is_ddr = true; 138 rdev->mc.vram_is_ddr = true;
140 /* FIXME: is this correct for RS690/RS740 ? */ 139 rdev->mc.vram_width = 128;
141 tmp = RREG32(RADEON_MEM_CNTL); 140
142 if (tmp & R300_MEM_NUM_CHANNELS_MASK) {
143 rdev->mc.vram_width = 128;
144 } else {
145 rdev->mc.vram_width = 64;
146 }
147 rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE); 141 rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE);
148 rdev->mc.mc_vram_size = rdev->mc.real_vram_size; 142 rdev->mc.mc_vram_size = rdev->mc.real_vram_size;
149 143