drm/radeon/kms/legacy: set overscan regs on modeset
These can end up with garbage otherwise. fixes rh bug 537140 Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
64bffd0375
commit
6b02af1c1f
|
@ -30,6 +30,18 @@
|
|||
#include "radeon.h"
|
||||
#include "atom.h"
|
||||
|
||||
static void radeon_overscan_setup(struct drm_crtc *crtc,
|
||||
struct drm_display_mode *mode)
|
||||
{
|
||||
struct drm_device *dev = crtc->dev;
|
||||
struct radeon_device *rdev = dev->dev_private;
|
||||
struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
|
||||
|
||||
WREG32(RADEON_OVR_CLR + radeon_crtc->crtc_offset, 0);
|
||||
WREG32(RADEON_OVR_WID_LEFT_RIGHT + radeon_crtc->crtc_offset, 0);
|
||||
WREG32(RADEON_OVR_WID_TOP_BOTTOM + radeon_crtc->crtc_offset, 0);
|
||||
}
|
||||
|
||||
static void radeon_legacy_rmx_mode_set(struct drm_crtc *crtc,
|
||||
struct drm_display_mode *mode,
|
||||
struct drm_display_mode *adjusted_mode)
|
||||
|
@ -1045,6 +1057,7 @@ static int radeon_crtc_mode_set(struct drm_crtc *crtc,
|
|||
radeon_crtc_set_base(crtc, x, y, old_fb);
|
||||
radeon_set_crtc_timing(crtc, adjusted_mode);
|
||||
radeon_set_pll(crtc, adjusted_mode);
|
||||
radeon_overscan_setup(crtc, adjusted_mode);
|
||||
if (radeon_crtc->crtc_id == 0) {
|
||||
radeon_legacy_rmx_mode_set(crtc, mode, adjusted_mode);
|
||||
} else {
|
||||
|
|
|
@ -1366,6 +1366,9 @@
|
|||
#define RADEON_OVR_CLR 0x0230
|
||||
#define RADEON_OVR_WID_LEFT_RIGHT 0x0234
|
||||
#define RADEON_OVR_WID_TOP_BOTTOM 0x0238
|
||||
#define RADEON_OVR2_CLR 0x0330
|
||||
#define RADEON_OVR2_WID_LEFT_RIGHT 0x0334
|
||||
#define RADEON_OVR2_WID_TOP_BOTTOM 0x0338
|
||||
|
||||
/* first capture unit */
|
||||
|
||||
|
|
Loading…
Reference in a new issue