]> xenbits.xensource.com Git - seabios.git/commitdiff
geodevga: Setup flat panel if needed
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Mon, 1 Oct 2012 12:02:49 +0000 (14:02 +0200)
committerKevin O'Connor <kevin@koconnor.net>
Mon, 8 Oct 2012 02:05:42 +0000 (22:05 -0400)
This patch does basic setup of the flat panel and turns the
panel on.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
vgasrc/geodevga.c

index 942985641994db3c2a667da3d1fc280264e4a537..5b42e00eadb06fa1d9087498f91a3e09f72eb067 100644 (file)
@@ -292,6 +292,25 @@ static void vp_setup(void)
     geode_vp_mask(VP_DCFG, 0, VP_DCFG_CRT_EN|VP_DCFG_HSYNC_EN|VP_DCFG_VSYNC_EN|VP_DCFG_DAC_BL_EN|VP_DCFG_CRT_SKEW);
     reg = geode_vp_read(VP_DCFG);
     dprintf(1,"VP_SETUP VP_DCFG=0x%08x\n",reg);
+
+    /* setup flat panel */
+    if (CONFIG_VGA_OUTPUT_PANEL || CONFIG_VGA_OUTPUT_CRT_PANEL) {
+        dprintf(1, "Setting up flat panel\n");
+        /* write timing register */
+        geode_fp_write(FP_PT1, 0x0);
+        geode_fp_write(FP_PT2, FP_PT2_SCRC);
+
+        /* set pad select for TFT/LVDS */
+        msr  = VP_MSR_PADSEL_TFT_SEL_HIGH;
+        msr  = msr << 32;
+        msr |= VP_MSR_PADSEL_TFT_SEL_LOW;
+        geode_msr_mask(VP_MSR_PADSEL, ~msr, msr);
+
+        /* turn the panel on (if it isn't already) */
+        reg = geode_fp_read(FP_PM);
+        reg |= FP_PM_P;
+        geode_fp_write(FP_PM, reg);
+    }
 }
 
 static u8 geode_crtc_01[] VAR16 = {