| From 304f07e9c8d302cf3183248cbabb40598eb5b732 Mon Sep 17 00:00:00 2001 |
| From: Alex Deucher <alexander.deucher@amd.com> |
| Date: Tue, 31 Mar 2015 10:33:05 -0400 |
| Subject: drm/radeon: fix ordering of AVI packet setup |
| |
| From: Alex Deucher <alexander.deucher@amd.com> |
| |
| commit 304f07e9c8d302cf3183248cbabb40598eb5b732 upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/radeon/evergreen_hdmi.c | 12 ++++++------ |
| drivers/gpu/drm/radeon/r600_hdmi.c | 9 +++++---- |
| 2 files changed, 11 insertions(+), 10 deletions(-) |
| |
| --- a/drivers/gpu/drm/radeon/evergreen_hdmi.c |
| +++ b/drivers/gpu/drm/radeon/evergreen_hdmi.c |
| @@ -219,13 +219,13 @@ void evergreen_set_avi_packet(struct rad |
| WREG32(AFMT_AVI_INFO3 + offset, |
| 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, |
| - HDMI_AVI_INFO_LINE(2), /* anything other than 0 */ |
| - ~HDMI_AVI_INFO_LINE_MASK); |
| + HDMI_AVI_INFO_LINE(2), /* anything other than 0 */ |
| + ~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, |
| --- a/drivers/gpu/drm/radeon/r600_hdmi.c |
| +++ b/drivers/gpu/drm/radeon/r600_hdmi.c |
| @@ -228,12 +228,13 @@ void r600_set_avi_packet(struct radeon_d |
| WREG32(HDMI0_AVI_INFO3 + offset, |
| 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, |
| - HDMI0_AVI_INFO_SEND | /* enable AVI info frames */ |
| - HDMI0_AVI_INFO_CONT); /* send AVI info frames every frame/field */ |
| + HDMI0_AVI_INFO_SEND | /* enable AVI info frames */ |
| + 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 */ |
| } |
| |
| /* |