summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJordan Crouse <jordan.crouse@amd.com>2008-06-18 21:34:38 +0400
committerIngo Molnar <mingo@elte.hu>2008-06-19 16:19:03 +0400
commitffe6e1da86d21d7855495b5a772c93f050258f6e (patch)
treec327ccc9378b70df18d0b89355e43c613a073334 /arch
parentd3942cff620bea073fc4e3c8ed878eb1e84615ce (diff)
downloadlinux-ffe6e1da86d21d7855495b5a772c93f050258f6e.tar.xz
x86, geode: add a VSA2 ID for General Software
General Software writes their own VSA2 module for their version of the Geode BIOS, which returns a different ID then the standard VSA2. This was causing the framebuffer driver to break for most GSW boards. Signed-off-by: Jordan Crouse <jordan.crouse@amd.com> Cc: tglx@linutronix.de Cc: linux-geode@lists.infradead.org Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/geode_32.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kernel/geode_32.c b/arch/x86/kernel/geode_32.c
index e8edd63ab000..9b08e852fd1a 100644
--- a/arch/x86/kernel/geode_32.c
+++ b/arch/x86/kernel/geode_32.c
@@ -166,6 +166,8 @@ int geode_has_vsa2(void)
static int has_vsa2 = -1;
if (has_vsa2 == -1) {
+ u16 val;
+
/*
* The VSA has virtual registers that we can query for a
* signature.
@@ -173,7 +175,8 @@ int geode_has_vsa2(void)
outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);
outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);
- has_vsa2 = (inw(VSA_VRC_DATA) == VSA_SIG);
+ val = inw(VSA_VRC_DATA);
+ has_vsa2 = (val == AMD_VSA_SIG || val == GSW_VSA_SIG);
}
return has_vsa2;