drm/radeon/kms: Don't overwrite crtc_gen_cntl or crtc_gen_cntl2
Don't overwritte crtc_gen_cntl or crtc_gen_cntl2 or we may loose the cursor. This especialy happen when changing video mode. Fix bugs: https://bugzilla.redhat.com/show_bug.cgi?id=529146 Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
ed160143c6
commit
ee2215f0b2
|
@ -647,12 +647,8 @@ static bool radeon_set_crtc_timing(struct drm_crtc *crtc, struct drm_display_mod
|
|||
uint32_t crtc2_gen_cntl;
|
||||
uint32_t disp2_merge_cntl;
|
||||
|
||||
/* check to see if TV DAC is enabled for another crtc and keep it enabled */
|
||||
if (RREG32(RADEON_CRTC2_GEN_CNTL) & RADEON_CRTC2_CRT2_ON)
|
||||
crtc2_gen_cntl = RADEON_CRTC2_CRT2_ON;
|
||||
else
|
||||
crtc2_gen_cntl = 0;
|
||||
|
||||
/* if TV DAC is enabled for another crtc and keep it enabled */
|
||||
crtc2_gen_cntl = RREG32(RADEON_CRTC2_GEN_CNTL) & 0x00718080;
|
||||
crtc2_gen_cntl |= ((format << 8)
|
||||
| RADEON_CRTC2_VSYNC_DIS
|
||||
| RADEON_CRTC2_HSYNC_DIS
|
||||
|
@ -681,7 +677,8 @@ static bool radeon_set_crtc_timing(struct drm_crtc *crtc, struct drm_display_mod
|
|||
uint32_t crtc_ext_cntl;
|
||||
uint32_t disp_merge_cntl;
|
||||
|
||||
crtc_gen_cntl = (RADEON_CRTC_EXT_DISP_EN
|
||||
crtc_gen_cntl = RREG32(RADEON_CRTC_GEN_CNTL) & 0x00718000;
|
||||
crtc_gen_cntl |= (RADEON_CRTC_EXT_DISP_EN
|
||||
| (format << 8)
|
||||
| RADEON_CRTC_DISP_REQ_EN_B
|
||||
| ((mode->flags & DRM_MODE_FLAG_DBLSCAN)
|
||||
|
|
Loading…
Reference in New Issue