diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-03-11 10:38:07 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-03-15 09:59:24 +1000 |
commit | d805f50aa1d9eef63fec356b2be557e2da3cd643 (patch) | |
tree | 7f1fd600fc3c9be78b40dac15cf3e6aa8eec7bc1 | |
parent | b28ea41164dc36110dafcdc63783e9b7fb865784 (diff) | |
download | linux-d805f50aa1d9eef63fec356b2be557e2da3cd643.tar.gz linux-d805f50aa1d9eef63fec356b2be557e2da3cd643.tar.bz2 linux-d805f50aa1d9eef63fec356b2be557e2da3cd643.zip |
drm/radeon/kms/rs4xx: make sure crtcs are enabled when setting timing
based on ddx patch from Matthias Hopf.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c index df23d6a01d02..88865e38fe30 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c @@ -603,6 +603,10 @@ static bool radeon_set_crtc_timing(struct drm_crtc *crtc, struct drm_display_mod ? RADEON_CRTC2_INTERLACE_EN : 0)); + /* rs4xx chips seem to like to have the crtc enabled when the timing is set */ + if ((rdev->family == CHIP_RS400) || (rdev->family == CHIP_RS480)) + crtc2_gen_cntl |= RADEON_CRTC2_EN; + disp2_merge_cntl = RREG32(RADEON_DISP2_MERGE_CNTL); disp2_merge_cntl &= ~RADEON_DISP2_RGB_OFFSET_EN; @@ -630,6 +634,10 @@ static bool radeon_set_crtc_timing(struct drm_crtc *crtc, struct drm_display_mod ? RADEON_CRTC_INTERLACE_EN : 0)); + /* rs4xx chips seem to like to have the crtc enabled when the timing is set */ + if ((rdev->family == CHIP_RS400) || (rdev->family == CHIP_RS480)) + crtc_gen_cntl |= RADEON_CRTC_EN; + crtc_ext_cntl = RREG32(RADEON_CRTC_EXT_CNTL); crtc_ext_cntl |= (RADEON_XCRT_CNT_EN | RADEON_CRTC_VSYNC_DIS | |