From b77bdc2c15640a3b15233f2190179d66bc8b2a4b Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 8 Mar 2006 15:08:06 -0800 Subject: Move the PFIT enabling before the enabling of the pipe, as the specs say we should. This doesn't work yet, as we apparently need to adjust the pipe to output at the full resolution of the panel, not the displayed image size, because PFIT controls scaling between the display planes and the pipe. --- src/i830_display.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/i830_display.c b/src/i830_display.c index a7a01442..5386ac8d 100644 --- a/src/i830_display.c +++ b/src/i830_display.c @@ -463,6 +463,16 @@ i830PipeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode, int pipe) i830PipeSetBase(pScrn, pipe, pScrn->frameX0, pScrn->frameY0); OUTREG(PIPEBSRC, pipesrc); + if (outputs & PIPE_LCD_ACTIVE) { + /* Enable automatic panel scaling so that non-native modes fill the + * screen. + */ + /* XXX: Allow (auto-?) enabling of 8-to-6 dithering */ + OUTREG(PFIT_CONTROL, PFIT_ENABLE /*| + VERT_AUTO_SCALE | HORIZ_AUTO_SCALE | + VERT_INTERP_BILINEAR | HORIZ_INTERP_BILINEAR*/); + } + /* Then, turn the pipe on first */ temp = INREG(PIPEBCONF); OUTREG(PIPEBCONF, temp | PIPEBCONF_ENABLE); @@ -471,14 +481,6 @@ i830PipeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode, int pipe) OUTREG(DSPBCNTR, dspcntr); if (outputs & PIPE_LCD_ACTIVE) { - /* Enable automatic panel scaling so that non-native modes fill the - * screen. - */ - /* XXX: Allow (auto-?) enabling of 8-to-6 dithering */ - OUTREG(PFIT_CONTROL, PFIT_ENABLE | - VERT_AUTO_SCALE | HORIZ_AUTO_SCALE | - VERT_INTERP_BILINEAR | HORIZ_INTERP_BILINEAR); - i830SetLVDSPanelPower(pScrn, TRUE); } } -- cgit v1.2.3