diff options
| author | Alex Deucher <alexdeucher@gmail.com> | 2009-10-13 23:57:47 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2009-10-15 18:47:00 -0400 |
| commit | ceefedd8e8a80b743fa0b6d6b1992be7029a9efb (patch) | |
| tree | f564c95d73a59166be41ae61f52375ea68460706 /drivers | |
| parent | 0294cf4f7f895ddcf284b1ce7cf27a2c9d7106f7 (diff) | |
drm/radeon/kms/atom: fix tv-out
D1MODE_INTERLEAVE_EN was getting set in some cases
in the encoder quirks function due to the changes in
5a9bcacc0a56f0d9577494e834519480018a6cc3
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/radeon/atombios_crtc.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 9 |
2 files changed, 6 insertions, 7 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index 3409aa3cbee4..f7dcb6916837 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c | |||
| @@ -31,10 +31,6 @@ | |||
| 31 | #include "atom.h" | 31 | #include "atom.h" |
| 32 | #include "atom-bits.h" | 32 | #include "atom-bits.h" |
| 33 | 33 | ||
| 34 | /* evil but including atombios.h is much worse */ | ||
| 35 | bool radeon_atom_get_tv_timings(struct radeon_device *rdev, int index, | ||
| 36 | SET_CRTC_TIMING_PARAMETERS_PS_ALLOCATION *crtc_timing, | ||
| 37 | int32_t *pixel_clock); | ||
| 38 | static void atombios_overscan_setup(struct drm_crtc *crtc, | 34 | static void atombios_overscan_setup(struct drm_crtc *crtc, |
| 39 | struct drm_display_mode *mode, | 35 | struct drm_display_mode *mode, |
| 40 | struct drm_display_mode *adjusted_mode) | 36 | struct drm_display_mode *adjusted_mode) |
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 |
