Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org

+12 -11
+6 -6
drivers/gpu/drm/radeon/evergreen_hdmi.c
··· 219 219 WREG32(AFMT_AVI_INFO3 + offset, 220 220 frame[0xC] | (frame[0xD] << 8) | (buffer[1] << 24)); 221 221 222 - WREG32_OR(HDMI_INFOFRAME_CONTROL0 + offset, 223 - HDMI_AVI_INFO_SEND | /* enable AVI info frames */ 224 - HDMI_AVI_INFO_CONT); /* required for audio info values to be updated */ 225 - 226 222 WREG32_P(HDMI_INFOFRAME_CONTROL1 + offset, 227 - HDMI_AVI_INFO_LINE(2), /* anything other than 0 */ 228 - ~HDMI_AVI_INFO_LINE_MASK); 223 + HDMI_AVI_INFO_LINE(2), /* anything other than 0 */ 224 + ~HDMI_AVI_INFO_LINE_MASK); 225 + 226 + WREG32_OR(HDMI_INFOFRAME_CONTROL0 + offset, 227 + HDMI_AVI_INFO_SEND | /* enable AVI info frames */ 228 + HDMI_AVI_INFO_CONT); /* required for audio info values to be updated */ 229 229 } 230 230 231 231 void dce4_hdmi_audio_set_dto(struct radeon_device *rdev,
+6 -5
drivers/gpu/drm/radeon/r600_hdmi.c
··· 228 228 WREG32(HDMI0_AVI_INFO3 + offset, 229 229 frame[0xC] | (frame[0xD] << 8) | (buffer[1] << 24)); 230 230 231 - WREG32_OR(HDMI0_INFOFRAME_CONTROL0 + offset, 232 - HDMI0_AVI_INFO_SEND | /* enable AVI info frames */ 233 - HDMI0_AVI_INFO_CONT); /* send AVI info frames every frame/field */ 234 - 235 231 WREG32_OR(HDMI0_INFOFRAME_CONTROL1 + offset, 236 - HDMI0_AVI_INFO_LINE(2)); /* anything other than 0 */ 232 + HDMI0_AVI_INFO_LINE(2)); /* anything other than 0 */ 233 + 234 + WREG32_OR(HDMI0_INFOFRAME_CONTROL0 + offset, 235 + HDMI0_AVI_INFO_SEND | /* enable AVI info frames */ 236 + HDMI0_AVI_INFO_CONT); /* send AVI info frames every frame/field */ 237 + 237 238 } 238 239 239 240 /*