Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 722f2943 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms: fix vram setup on rs600



also fix up rs690 mem width.

should fix fdo bug 25408

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 8de21525
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -320,6 +320,12 @@ void rs600_vram_info(struct radeon_device *rdev)
	/* FIXME: to do or is these values sane ? */
	rdev->mc.vram_is_ddr = true;
	rdev->mc.vram_width = 128;

	rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE);
	rdev->mc.mc_vram_size = rdev->mc.real_vram_size;

	rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0);
	rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0);
}

void rs600_bandwidth_update(struct radeon_device *rdev)
+2 −8
Original line number Diff line number Diff line
@@ -131,19 +131,13 @@ void rs690_pm_info(struct radeon_device *rdev)

void rs690_vram_info(struct radeon_device *rdev)
{
	uint32_t tmp;
	fixed20_12 a;

	rs400_gart_adjust_size(rdev);
	/* DDR for all card after R300 & IGP */
	rdev->mc.vram_is_ddr = true;
	/* FIXME: is this correct for RS690/RS740 ? */
	tmp = RREG32(RADEON_MEM_CNTL);
	if (tmp & R300_MEM_NUM_CHANNELS_MASK) {
	rdev->mc.vram_width = 128;
	} else {
		rdev->mc.vram_width = 64;
	}

	rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE);
	rdev->mc.mc_vram_size = rdev->mc.real_vram_size;