diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_encoders.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index b70440e8d179..2aa5994a29d5 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -206,7 +206,7 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, | |||
206 | && (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2))) | 206 | && (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2))) |
207 | adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; | 207 | adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; |
208 | 208 | ||
209 | if (radeon_encoder->active_device & ATOM_DEVICE_TV_SUPPORT) { | 209 | if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) { |
210 | struct radeon_encoder_atom_dac *tv_dac = radeon_encoder->enc_priv; | 210 | struct radeon_encoder_atom_dac *tv_dac = radeon_encoder->enc_priv; |
211 | if (tv_dac) { | 211 | if (tv_dac) { |
212 | if (tv_dac->tv_std == TV_STD_NTSC || | 212 | if (tv_dac->tv_std == TV_STD_NTSC || |
@@ -1085,8 +1085,11 @@ atombios_apply_encoder_quirks(struct drm_encoder *encoder, | |||
1085 | } | 1085 | } |
1086 | 1086 | ||
1087 | /* set scaler clears this on some chips */ | 1087 | /* set scaler clears this on some chips */ |
1088 | if (ASIC_IS_AVIVO(rdev) && (mode->flags & DRM_MODE_FLAG_INTERLACE)) | 1088 | if (!(radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT))) { |
1089 | WREG32(AVIVO_D1MODE_DATA_FORMAT + radeon_crtc->crtc_offset, AVIVO_D1MODE_INTERLEAVE_EN); | 1089 | if (ASIC_IS_AVIVO(rdev) && (mode->flags & DRM_MODE_FLAG_INTERLACE)) |
1090 | WREG32(AVIVO_D1MODE_DATA_FORMAT + radeon_crtc->crtc_offset, | ||
1091 | AVIVO_D1MODE_INTERLEAVE_EN); | ||
1092 | } | ||
1090 | } | 1093 | } |
1091 | 1094 | ||
1092 | static void | 1095 | static void |