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

Commit e1accbf0 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/radeon: select audio dto based on encoder id for DCE3

There are two audio dtos on radeon asics that you can
select between.  Normally, dto0 is used for hdmi and
dto1 for DP, but it seems that the dto is somehow
tied to the encoders on DCE3 asics.

fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=67435



Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent 95f59509
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -242,9 +242,15 @@ void r600_audio_set_dto(struct drm_encoder *encoder, u32 clock)
		/* according to the reg specs, this should DCE3.2 only, but in
		 * practice it seems to cover DCE3.0 as well.
		 */
		if (dig->dig_encoder == 0) {
			WREG32(DCCG_AUDIO_DTO0_PHASE, base_rate * 100);
			WREG32(DCCG_AUDIO_DTO0_MODULE, clock * 100);
			WREG32(DCCG_AUDIO_DTO_SELECT, 0); /* select DTO0 */
		} else {
			WREG32(DCCG_AUDIO_DTO1_PHASE, base_rate * 100);
			WREG32(DCCG_AUDIO_DTO1_MODULE, clock * 100);
			WREG32(DCCG_AUDIO_DTO_SELECT, 1); /* select DTO1 */
		}
	} else {
		/* according to the reg specs, this should be DCE2.0 and DCE3.0 */
		WREG32(AUDIO_DTO, AUDIO_DTO_PHASE(base_rate / 10) |