diff options
author | Eric Anholt <eric@anholt.net> | 2008-03-20 15:14:46 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2008-06-19 15:01:35 -0700 |
commit | 2fa9240a3b685a0c3d0e2644fc144c927b67b6b3 (patch) | |
tree | a42ed6845b5769898d788072103eaab1b3d16e56 /src/i830_hdmi.c | |
parent | dc8ab9d35b261b6105a62949cfb47a3554531d0b (diff) |
Get HDMI output working.
HDMI, despite claiming to have pixel multiply support, actually doesn't
want it, at least in the way that SDVO did. Disable it.
Also disable the NULL_PACKETS_DURING_VSYNC bit. Despite the docs telling us
to set it, the output doesn't like it when you do that, and the BIOS doesn't
set it.
Also add a posting read to SDVOx setting. Without it, half the X starts
wouldn't get anything on the screen. (interestingly, it was every other
startup, not just a chance).
Diffstat (limited to 'src/i830_hdmi.c')
-rw-r--r-- | src/i830_hdmi.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/i830_hdmi.c b/src/i830_hdmi.c index 931a55c3..c256296e 100644 --- a/src/i830_hdmi.c +++ b/src/i830_hdmi.c @@ -52,25 +52,13 @@ i830_hdmi_mode_valid(xf86OutputPtr output, DisplayModePtr mode) return MODE_OK; } -static int -i830_hdmi_get_pixel_multiplier(DisplayModePtr mode) -{ - if (mode->Clock >= 100000) - return 1; - else if (mode->Clock >= 50000) - return 2; - else - return 4; -} - static Bool i830_hdmi_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, DisplayModePtr adjusted_mode) { - /* Make the CRTC code factor in the SDVO pixel multiplier. + /* The HDMI output doesn't need the pixel multiplication that SDVO does, + * so no fixup. */ - adjusted_mode->Clock *= i830_hdmi_get_pixel_multiplier(mode); - return TRUE; } @@ -88,13 +76,13 @@ i830_hdmi_mode_set(xf86OutputPtr output, DisplayModePtr mode, sdvox = SDVO_ENCODING_HDMI | SDVO_BORDER_ENABLE | - SDVO_NULL_PACKETS_DURING_VSYNC | SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH; if (intel_crtc->pipe == 1) sdvox |= SDVO_PIPE_B_SELECT; OUTREG(dev_priv->output_reg, sdvox); + POSTING_READ(sdvox); } static void |