浏览代码

sync modesetting code with X.org

Signed-off-by: Dave Airlie <airlied@linux.ie>
Dave Airlie 19 年之前
父节点
当前提交
f728377f67
共有 1 个文件被更改,包括 5 次插入4 次删除
  1. 5 4
      drivers/video/intelfb/intelfbhw.c

+ 5 - 4
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);