diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-12-03 16:18:19 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-03 19:32:26 -0500 |
commit | 722f29434e72188b2d20f9b41f4b5952073ed568 (patch) | |
tree | 24802abbe53dc69a5f5b7914c134058a06dd9b2d /drivers/gpu/drm | |
parent | 8de21525439e6b5bb8d8c81e49094d867bf82f6d (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.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/rs690.c | 10 |
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 | ||
325 | void rs600_bandwidth_update(struct radeon_device *rdev) | 331 | void 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 | ||
132 | void rs690_vram_info(struct radeon_device *rdev) | 132 | void 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 | ||