diff options
author | Eric Anholt <eric@anholt.net> | 2007-03-05 05:08:51 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2007-03-05 05:08:51 -0800 |
commit | 8bb677889d3f71cde671f17a3589939acad2c3b3 (patch) | |
tree | 64a89cb67d21a3ed8ec9b2a9e77fabb771cba9c0 /src/i830_sdvo.c | |
parent | a0c83af3430b6705ab2ecae59085d1c74e890c19 (diff) |
Fix 965GM SDVO by not setting fields in SDVO[BC] which have new meanings.
Diffstat (limited to 'src/i830_sdvo.c')
-rw-r--r-- | src/i830_sdvo.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c index b7cf8436..ab01028f 100644 --- a/src/i830_sdvo.c +++ b/src/i830_sdvo.c @@ -647,16 +647,20 @@ i830_sdvo_mode_set(xf86OutputPtr output, DisplayModePtr mode, } /* Set the SDVO control regs. */ - sdvox = INREG(dev_priv->output_device); - switch (dev_priv->output_device) { - case SDVOB: - sdvox &= SDVOB_PRESERVE_MASK; - break; - case SDVOC: - sdvox &= SDVOC_PRESERVE_MASK; - break; + if (IS_I965GM(pI830)) { + sdvox = SDVO_BORDER_ENABLE; + } else { + sdvox = INREG(dev_priv->output_device); + switch (dev_priv->output_device) { + case SDVOB: + sdvox &= SDVOB_PRESERVE_MASK; + break; + case SDVOC: + sdvox &= SDVOC_PRESERVE_MASK; + break; + } + sdvox |= (9 << 19) | SDVO_BORDER_ENABLE; } - sdvox |= (9 << 19) | SDVO_BORDER_ENABLE; if (intel_crtc->pipe == 1) sdvox |= SDVO_PIPE_B_SELECT; |