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

Commit 92cde00c authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms/legacy: set common regs to sane value



The DDX and radeonfb always set these regs to a sane value.

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 6b02af1c
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -1675,6 +1675,17 @@ int r100_gpu_reset(struct radeon_device *rdev)
	return 0;
}

void r100_set_common_regs(struct radeon_device *rdev)
{
	/* set these so they don't interfere with anything */
	WREG32(RADEON_OV0_SCALE_CNTL, 0);
	WREG32(RADEON_SUBPIC_CNTL, 0);
	WREG32(RADEON_VIPH_CONTROL, 0);
	WREG32(RADEON_I2C_CNTL_1, 0);
	WREG32(RADEON_DVI_I2C_CNTL_1, 0);
	WREG32(RADEON_CAP0_TRIG_CNTL, 0);
	WREG32(RADEON_CAP1_TRIG_CNTL, 0);
}

/*
 * VRAM info
@@ -3129,6 +3140,9 @@ static int r100_startup(struct radeon_device *rdev)
{
	int r;

	/* set common regs */
	r100_set_common_regs(rdev);
	/* program mc */
	r100_mc_program(rdev);
	/* Resume clock */
	r100_clock_startup(rdev);
+3 −0
Original line number Diff line number Diff line
@@ -1186,6 +1186,9 @@ static int r300_startup(struct radeon_device *rdev)
{
	int r;

	/* set common regs */
	r100_set_common_regs(rdev);
	/* program mc */
	r300_mc_program(rdev);
	/* Resume clock */
	r300_clock_startup(rdev);
+3 −0
Original line number Diff line number Diff line
@@ -169,6 +169,9 @@ static int r420_startup(struct radeon_device *rdev)
{
	int r;

	/* set common regs */
	r100_set_common_regs(rdev);
	/* program mc */
	r300_mc_program(rdev);
	/* Resume clock */
	r420_clock_resume(rdev);
+1 −0
Original line number Diff line number Diff line
@@ -1046,6 +1046,7 @@ extern int r100_cs_packet_parse(struct radeon_cs_parser *p,
				struct radeon_cs_packet *pkt,
				unsigned idx);
extern void r100_enable_bm(struct radeon_device *rdev);
extern void r100_set_common_regs(struct radeon_device *rdev);

/* rv200,rv250,rv280 */
extern void r200_set_safe_registers(struct radeon_device *rdev);