summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@openbsd.org>2013-07-21 16:46:18 +0200
committerJonathan Gray <jsg@jsg.id.au>2013-08-12 10:46:28 +1000
commit40c7d79f905acc7a08e9444665786e3a5ad56e59 (patch)
tree7a24be988922e3970aa471c0dd6ae7ace2ba2a65
parent34680c3dcdc0aadcd0937af13f19098c5c605fcd (diff)
clear crtc sync tristate bits; OFW turns these on for secondary cards
-rw-r--r--sys/dev/pci/drm/radeon/radeon_legacy_crtc.c3
-rw-r--r--sys/dev/pci/drm/radeon/radeon_reg.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/radeon/radeon_legacy_crtc.c b/sys/dev/pci/drm/radeon/radeon_legacy_crtc.c
index aadd0930304..c32e63a4136 100644
--- a/sys/dev/pci/drm/radeon/radeon_legacy_crtc.c
+++ b/sys/dev/pci/drm/radeon/radeon_legacy_crtc.c
@@ -680,6 +680,9 @@ static bool radeon_set_crtc_timing(struct drm_crtc *crtc, struct drm_display_mod
RADEON_CRTC_VSYNC_DIS |
RADEON_CRTC_HSYNC_DIS |
RADEON_CRTC_DISPLAY_DIS);
+ crtc_ext_cntl &= ~(RADEON_CRTC_SYNC_TRISTAT |
+ RADEON_CRTC_VSYNC_TRISTAT |
+ RADEON_CRTC_HSYNC_TRISTAT);
disp_merge_cntl = RREG32(RADEON_DISP_MERGE_CNTL);
disp_merge_cntl &= ~RADEON_DISP_RGB_OFFSET_EN;
diff --git a/sys/dev/pci/drm/radeon/radeon_reg.h b/sys/dev/pci/drm/radeon/radeon_reg.h
index 5d8f735d6aa..f328736d55a 100644
--- a/sys/dev/pci/drm/radeon/radeon_reg.h
+++ b/sys/dev/pci/drm/radeon/radeon_reg.h
@@ -426,6 +426,8 @@
# define RADEON_CRTC_VSYNC_DIS (1 << 9)
# define RADEON_CRTC_DISPLAY_DIS (1 << 10)
# define RADEON_CRTC_SYNC_TRISTAT (1 << 11)
+# define RADEON_CRTC_HSYNC_TRISTAT (1 << 12)
+# define RADEON_CRTC_VSYNC_TRISTAT (1 << 13)
# define RADEON_CRTC_CRT_ON (1 << 15)
#define RADEON_CRTC_EXT_CNTL_DPMS_BYTE 0x0055
# define RADEON_CRTC_HSYNC_DIS_BYTE (1 << 0)