diff options
author | Stuart Bennett <sb476@cam.ac.uk> | 2008-08-25 20:23:05 +0100 |
---|---|---|
committer | Stuart Bennett <sb476@cam.ac.uk> | 2008-08-26 02:54:13 +0100 |
commit | 1e2b87c459a3a0eacd630f1de8b567c36cc792bd (patch) | |
tree | 1f52cb60953f92eac6b8ee1b70376a7392776950 | |
parent | f89af0e6bc5ac88d0755f9402b772ca823518298 (diff) |
randr12: make the nouveau experience less green
-rw-r--r-- | src/nv_crtc.c | 6 | ||||
-rw-r--r-- | src/nv_type.h | 1 | ||||
-rw-r--r-- | src/nvreg.h | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/nv_crtc.c b/src/nv_crtc.c index 0f4bfc4..c897592 100644 --- a/src/nv_crtc.c +++ b/src/nv_crtc.c @@ -768,6 +768,8 @@ nv_crtc_mode_set_regs(xf86CrtcPtr crtc, DisplayModePtr mode) /* PIPE_LONG mode, something to do with the size of the cursor? */ regp->general |= 1 << 29; + regp->unk_630 = 0; /* turn off green mode (tv test pattern?) */ + /* Some values the blob sets */ regp->unk_a20 = 0x0; regp->unk_a24 = 0xfffff; @@ -1607,6 +1609,8 @@ static void nv_crtc_save_state_ramdac(xf86CrtcPtr crtc, RIVA_HW_STATE *state) regp->general = NVCrtcReadRAMDAC(crtc, NV_RAMDAC_GENERAL_CONTROL); if (pNv->twoHeads) { + if (pNv->NVArch >= 0x17) + regp->unk_630 = NVCrtcReadRAMDAC(crtc, NV_RAMDAC_630); regp->fp_control = NVCrtcReadRAMDAC(crtc, NV_RAMDAC_FP_CONTROL); regp->debug_0 = NVCrtcReadRAMDAC(crtc, NV_RAMDAC_FP_DEBUG_0); regp->debug_1 = NVCrtcReadRAMDAC(crtc, NV_RAMDAC_FP_DEBUG_1); @@ -1655,6 +1659,8 @@ static void nv_crtc_load_state_ramdac(xf86CrtcPtr crtc, RIVA_HW_STATE *state) NVCrtcWriteRAMDAC(crtc, NV_RAMDAC_GENERAL_CONTROL, regp->general); if (pNv->twoHeads) { + if (pNv->NVArch >= 0x17) + NVCrtcWriteRAMDAC(crtc, NV_RAMDAC_630, regp->unk_630); NVCrtcWriteRAMDAC(crtc, NV_RAMDAC_FP_CONTROL, regp->fp_control); NVCrtcWriteRAMDAC(crtc, NV_RAMDAC_FP_DEBUG_0, regp->debug_0); NVCrtcWriteRAMDAC(crtc, NV_RAMDAC_FP_DEBUG_1, regp->debug_1); diff --git a/src/nv_type.h b/src/nv_type.h index d1f2466..ab3890d 100644 --- a/src/nv_type.h +++ b/src/nv_type.h @@ -156,6 +156,7 @@ typedef struct _nv_crtc_reg /* These are former output regs, but are believed to be crtc related */ uint32_t general; + uint32_t unk_630; uint32_t debug_0; uint32_t debug_1; uint32_t debug_2; diff --git a/src/nvreg.h b/src/nvreg.h index 4abb1ea..f1c90c6 100644 --- a/src/nvreg.h +++ b/src/nvreg.h @@ -292,6 +292,7 @@ #define NV_RAMDAC_GENERAL_CONTROL 0x00680600 #define NV_RAMDAC_TEST_CONTROL 0x00680608 #define NV_RAMDAC_TEST_DATA 0x00680610 +#define NV_RAMDAC_630 0x00680630 /* This register is similar to TEST_CONTROL in the style of values */ #define NV_RAMDAC_670 0x00680670 |