[SeaBIOS] [PATCH 15/15] Turn Flat Panel on
Christian Gmeiner
christian.gmeiner at gmail.com
Sat Sep 1 17:13:06 CEST 2012
Add functions, defines etc. to be able to control the power state
of the Flat Panel. Turn it on on per default.
Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
---
vgasrc/geodevga.c | 20 ++++++++++++++++++++
vgasrc/geodevga.h | 5 +++++
2 files changed, 25 insertions(+)
diff --git a/vgasrc/geodevga.c b/vgasrc/geodevga.c
index 8520f2e..facaafd 100644
--- a/vgasrc/geodevga.c
+++ b/vgasrc/geodevga.c
@@ -149,6 +149,8 @@ struct geode {
};
struct geode geode VAR16;
+#define VP_FP_START 0x400
+
static u32 read_dc(int reg)
{
u32 val = geode_memRead(geode.dc + reg);
@@ -163,6 +165,13 @@ static u32 read_vp(int reg)
return val;
}
+static u32 read_fp(int reg)
+{
+ u32 val = geode_memRead(geode.vp + VP_FP_START +reg);
+ dprintf(4, "%s(0x%08x) = 0x%08x\n", __func__, geode.vp + VP_FP_START + reg, val);
+ return val;
+}
+
static void write_dc(int reg, u32 val)
{
dprintf(4, "%s(0x%08x, 0x%08x)\n", __func__, geode.dc + reg, val);
@@ -175,6 +184,12 @@ static void write_vp(int reg, u32 val)
geode_memWrite(geode.vp + reg, 0x0, val);
}
+static void write_fp(int reg, u32 val)
+{
+ dprintf(4, "%s(0x%08x, 0x%08x)\n", __func__, geode.vp + VP_FP_START + reg, val);
+ geode_memWrite(geode.vp + VP_FP_START + reg, 0x0, val);
+}
+
static int legacyio_check(void)
{
int ret=0;
@@ -304,6 +319,11 @@ static void vp_setup(void)
geode_memWrite(geode.vp + VP_DCFG, ~0,VP_CRT_EN+VP_HSYNC_EN+VP_VSYNC_EN+VP_DAC_BL_EN+VP_CRT_SKEW);
reg = read_vp(VP_DCFG);
dprintf(1,"VP_SETUP VP_DCFG=0x%08x\n",reg);
+
+ /* turn the panel on (if it isn't already) */
+ reg = read_fp(FP_PM);
+ reg |= FP_PM_P;
+ write_fp(FP_PM, reg);
}
/****************************************************************
diff --git a/vgasrc/geodevga.h b/vgasrc/geodevga.h
index ccc23d0..358c9da 100644
--- a/vgasrc/geodevga.h
+++ b/vgasrc/geodevga.h
@@ -52,6 +52,8 @@
#define VP_DCFG 0x8
#define VP_MISC 0x50
+/* FP REG OFFSET */
+#define FP_PM 0x10
/* DC bits */
#define DC_VGAE (1 << 7)
@@ -66,6 +68,9 @@
#define VP_CRT_SKEW (1 << 16)
#define VP_BYP_BOTH (1 << 0)
+/* FP bits */
+#define FP_PM_P (1 << 24) /* panel power ctl */
+
/* Mask */
#define DC_CFG_MSK 0xf000a6
--
1.7.11.rc2.5.g68f532f
More information about the SeaBIOS
mailing list