diff options
author | Dave Airlie <airlied@linux.ie> | 2006-05-18 17:12:43 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2006-06-02 10:07:57 +1000 |
commit | f661a13cda69297c61fcdec19be9662d68e14f7c (patch) | |
tree | 9a4987edda8a320ccf7e9716e436a0713208d753 /src | |
parent | 610be2b330498cca81ebdb08f7cc92b6737f08da (diff) |
fixup sdvo reset for dvob as well
Diffstat (limited to 'src')
-rw-r--r-- | src/i830_raw.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/i830_raw.c b/src/i830_raw.c index 12d25a62..bd88004d 100644 --- a/src/i830_raw.c +++ b/src/i830_raw.c @@ -830,9 +830,13 @@ I830RawRestoreState(ScrnInfoPtr pScrn, I830RegPtr hw) /* turn off pipe A */ temp = hw->pipe_a_conf; OUTREG(PIPEACONF, temp & ~PIPEACONF_ENABLE); + + if (hw->dvob & DVO_ENABLE) + OUTREG(DVOB, (hw->dvob & ~DVO_ENABLE) | SDVO_BORDER_ENABLE); + + if (hw->dvoc & DVO_ENABLE) + OUTREG(DVOC, (hw->dvoc & ~DVO_ENABLE) | SDVO_BORDER_ENABLE); - OUTREG(DVOC, (hw->dvoc & ~DVO_ENABLE) | SDVO_BORDER_ENABLE); - OUTREG(DVOB, (hw->dvob & ~DVO_ENABLE) | SDVO_BORDER_ENABLE); OUTREG(ADPA, hw->adpa & ~ADPA_DAC_ENABLE); OUTREG(0x61204, 0xabcd0000); @@ -848,8 +852,11 @@ I830RawRestoreState(ScrnInfoPtr pScrn, I830RegPtr hw) OUTREG(VCLK_DIVISOR_VGA1, hw->vga1_divisor); OUTREG(VCLK_POST_DIV, hw->vga_pd); - OUTREG(DVOB, hw->dvob); - OUTREG(DVOC, hw->dvoc | SDVO_BORDER_ENABLE); + if (hw->dvob & DVO_ENABLE) + OUTREG(DVOB, hw->dvob | SDVO_BORDER_ENABLE); + + if (hw->dvob & DVO_ENABLE) + OUTREG(DVOC, hw->dvoc | SDVO_BORDER_ENABLE); OUTREG(0x61204, 0x00000000); @@ -898,8 +905,13 @@ I830RawRestoreState(ScrnInfoPtr pScrn, I830RegPtr hw) OUTREG(PIPEACONF, hw->pipe_a_conf); OUTREG(PIPEBCONF, hw->pipe_b_conf); - OUTREG(DVOC, hw->dvoc | SDVO_BORDER_ENABLE); - OUTREG(DVOC, hw->dvoc); + if (hw->dvoc & DVO_ENABLE) { + OUTREG(DVOC, hw->dvoc); + } + + if (hw->dvob & DVO_ENABLE) { + OUTREG(DVOB, hw->dvoc); + } OUTREG(VGACNTRL, hw->vgacntrl); |