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

Commit 304f07e9 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/radeon: fix ordering of AVI packet setup



Set the line first, then enable the stream.  May fix
pink line problems on some displays.

Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent b421ed15
Loading
Loading
Loading
Loading
+6 −6
Original line number Original line Diff line number Diff line
@@ -219,13 +219,13 @@ void evergreen_set_avi_packet(struct radeon_device *rdev, u32 offset,
	WREG32(AFMT_AVI_INFO3 + offset,
	WREG32(AFMT_AVI_INFO3 + offset,
		frame[0xC] | (frame[0xD] << 8) | (buffer[1] << 24));
		frame[0xC] | (frame[0xD] << 8) | (buffer[1] << 24));


	WREG32_OR(HDMI_INFOFRAME_CONTROL0 + offset,
		HDMI_AVI_INFO_SEND |	/* enable AVI info frames */
		HDMI_AVI_INFO_CONT);	/* required for audio info values to be updated */

	WREG32_P(HDMI_INFOFRAME_CONTROL1 + offset,
	WREG32_P(HDMI_INFOFRAME_CONTROL1 + offset,
		 HDMI_AVI_INFO_LINE(2),	/* anything other than 0 */
		 HDMI_AVI_INFO_LINE(2),	/* anything other than 0 */
		 ~HDMI_AVI_INFO_LINE_MASK);
		 ~HDMI_AVI_INFO_LINE_MASK);

	WREG32_OR(HDMI_INFOFRAME_CONTROL0 + offset,
		  HDMI_AVI_INFO_SEND |	/* enable AVI info frames */
		  HDMI_AVI_INFO_CONT);	/* required for audio info values to be updated */
}
}


void dce4_hdmi_audio_set_dto(struct radeon_device *rdev,
void dce4_hdmi_audio_set_dto(struct radeon_device *rdev,
+5 −4
Original line number Original line Diff line number Diff line
@@ -228,12 +228,13 @@ void r600_set_avi_packet(struct radeon_device *rdev, u32 offset,
	WREG32(HDMI0_AVI_INFO3 + offset,
	WREG32(HDMI0_AVI_INFO3 + offset,
		frame[0xC] | (frame[0xD] << 8) | (buffer[1] << 24));
		frame[0xC] | (frame[0xD] << 8) | (buffer[1] << 24));


	WREG32_OR(HDMI0_INFOFRAME_CONTROL1 + offset,
		  HDMI0_AVI_INFO_LINE(2));	/* anything other than 0 */

	WREG32_OR(HDMI0_INFOFRAME_CONTROL0 + offset,
	WREG32_OR(HDMI0_INFOFRAME_CONTROL0 + offset,
		  HDMI0_AVI_INFO_SEND |	/* enable AVI info frames */
		  HDMI0_AVI_INFO_SEND |	/* enable AVI info frames */
		  HDMI0_AVI_INFO_CONT);	/* send AVI info frames every frame/field */
		  HDMI0_AVI_INFO_CONT);	/* send AVI info frames every frame/field */


	WREG32_OR(HDMI0_INFOFRAME_CONTROL1 + offset,
		HDMI0_AVI_INFO_LINE(2));	/* anything other than 0 */
}
}


/*
/*