summaryrefslogtreecommitdiff
path: root/drivers/video/intelfb
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2006-05-27 18:56:02 +1000
committerDave Airlie <airlied@linux.ie>2006-05-27 18:56:02 +1000
commitf728377f6786bcdf1dbf33394360164e86f40094 (patch)
treee1651c2772f53ebe28f135c024b619834ae5eca2 /drivers/video/intelfb
parentc9daa873c3a7c769821ec6c8258adf098bb0435c (diff)
sync modesetting code with X.org
Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/video/intelfb')
-rw-r--r--drivers/video/intelfb/intelfbhw.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c
index 5a621df5bf0..16c9c192b4b 100644
--- a/drivers/video/intelfb/intelfbhw.c
+++ b/drivers/video/intelfb/intelfbhw.c
@@ -1359,6 +1359,10 @@ intelfbhw_program_mode(struct intelfb_info *dinfo,
/* Wait for vblank. For now, just wait for a 50Hz cycle (20ms)) */
mdelay(20);
+ OUTREG(DVOB, INREG(DVOB) & ~PORT_ENABLE);
+ OUTREG(DVOC, INREG(DVOC) & ~PORT_ENABLE);
+ OUTREG(ADPA, INREG(ADPA) & ~ADPA_DAC_ENABLE);
+
/* Disable Sync */
tmp = INREG(ADPA);
tmp &= ~ADPA_DPMS_CONTROL_MASK;
@@ -1374,14 +1378,11 @@ intelfbhw_program_mode(struct intelfb_info *dinfo,
OUTREG(dpll_reg, tmp);
/* Set PLL parameters */
- OUTREG(dpll_reg, *dpll & ~DPLL_VCO_ENABLE);
OUTREG(fp0_reg, *fp0);
OUTREG(fp1_reg, *fp1);
/* Enable PLL */
- tmp = INREG(dpll_reg);
- tmp |= DPLL_VCO_ENABLE;
- OUTREG(dpll_reg, tmp);
+ OUTREG(dpll_reg, *dpll);
/* Set DVOs B/C */
OUTREG(DVOB, hw->dvob);