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

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

drm/radeon/kms: DCE6.1 watermark updates for TN

parent 5d7486c7
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -581,7 +581,7 @@ static u32 evergreen_line_buffer_adjust(struct radeon_device *rdev,
	return 0;
	return 0;
}
}


static u32 evergreen_get_number_of_dram_channels(struct radeon_device *rdev)
u32 evergreen_get_number_of_dram_channels(struct radeon_device *rdev)
{
{
	u32 tmp = RREG32(MC_SHARED_CHMAP);
	u32 tmp = RREG32(MC_SHARED_CHMAP);


+6 −2
Original line number Original line Diff line number Diff line
@@ -60,6 +60,7 @@ extern void r600_ih_ring_fini(struct radeon_device *rdev);
extern void evergreen_fix_pci_max_read_req_size(struct radeon_device *rdev);
extern void evergreen_fix_pci_max_read_req_size(struct radeon_device *rdev);
extern void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save);
extern void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save);
extern void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save);
extern void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save);
extern u32 evergreen_get_number_of_dram_channels(struct radeon_device *rdev);


/* get temperature in millidegrees */
/* get temperature in millidegrees */
int si_get_temp(struct radeon_device *rdev)
int si_get_temp(struct radeon_device *rdev)
@@ -449,7 +450,7 @@ static u32 dce6_line_buffer_adjust(struct radeon_device *rdev,
	return 0;
	return 0;
}
}


static u32 dce6_get_number_of_dram_channels(struct radeon_device *rdev)
static u32 si_get_number_of_dram_channels(struct radeon_device *rdev)
{
{
	u32 tmp = RREG32(MC_SHARED_CHMAP);
	u32 tmp = RREG32(MC_SHARED_CHMAP);


@@ -766,7 +767,10 @@ static void dce6_program_watermarks(struct radeon_device *rdev,
			wm.vtaps = 2;
			wm.vtaps = 2;
		wm.bytes_per_pixel = 4; /* XXX: get this from fb config */
		wm.bytes_per_pixel = 4; /* XXX: get this from fb config */
		wm.lb_size = lb_size;
		wm.lb_size = lb_size;
		wm.dram_channels = dce6_get_number_of_dram_channels(rdev);
		if (rdev->family == CHIP_ARUBA)
			wm.dram_channels = evergreen_get_number_of_dram_channels(rdev);
		else
			wm.dram_channels = si_get_number_of_dram_channels(rdev);
		wm.num_heads = num_heads;
		wm.num_heads = num_heads;


		/* set for high clocks */
		/* set for high clocks */