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

Commit 22dd5013 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms: fix vram setup on rs600/rs690/rs740



Don't remap vram to 0 on IGP chips.

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 2a008d0c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -352,7 +352,7 @@ static int rs400_mc_init(struct radeon_device *rdev)
	u32 tmp;

	/* Setup GPU memory space */
	tmp = G_00015C_MC_FB_START(RREG32(R_00015C_NB_TOM));
	tmp = RREG32(R_00015C_NB_TOM);
	rdev->mc.vram_location = G_00015C_MC_FB_START(tmp) << 16;
	rdev->mc.gtt_location = 0xFFFFFFFFUL;
	r = radeon_mc_setup(rdev);
+4 −3
Original line number Diff line number Diff line
@@ -48,11 +48,12 @@ int rs600_mc_wait_for_idle(struct radeon_device *rdev);
int rs600_mc_init(struct radeon_device *rdev)
{
	/* read back the MC value from the hw */
	uint32_t mc_fb_loc;
	int r;
	u32 tmp;

	mc_fb_loc = RREG32_MC(R_000004_MC_FB_LOCATION);
	rdev->mc.vram_location = G_000004_MC_FB_START(mc_fb_loc) << 16;
	/* Setup GPU memory space */
	tmp = RREG32_MC(R_000004_MC_FB_LOCATION);
	rdev->mc.vram_location = G_000004_MC_FB_START(tmp) << 16;
	rdev->mc.gtt_location = 0xffffffffUL;
	r = radeon_mc_setup(rdev);
	if (r)
+16 −1
Original line number Diff line number Diff line
@@ -162,6 +162,21 @@ void rs690_vram_info(struct radeon_device *rdev)
	rdev->pm.core_bandwidth.full = rfixed_div(rdev->pm.sclk, a);
}

static int rs690_mc_init(struct radeon_device *rdev)
{
	int r;
	u32 tmp;

	/* Setup GPU memory space */
	tmp = RREG32_MC(R_000100_MCCFG_FB_LOCATION);
	rdev->mc.vram_location = G_000100_MC_FB_START(tmp) << 16;
	rdev->mc.gtt_location = 0xFFFFFFFFUL;
	r = radeon_mc_setup(rdev);
	if (r)
		return r;
	return 0;
}

void rs690_line_buffer_adjust(struct radeon_device *rdev,
			      struct drm_display_mode *mode1,
			      struct drm_display_mode *mode2)
@@ -710,7 +725,7 @@ int rs690_init(struct radeon_device *rdev)
	/* Get vram informations */
	rs690_vram_info(rdev);
	/* Initialize memory controller (also test AGP) */
	r = r420_mc_init(rdev);
	r = rs690_mc_init(rdev);
	if (r)
		return r;
	rv515_debugfs(rdev);