From 9adeb54e6960a76a116b602ea424c8282a165255 Mon Sep 17 00:00:00 2001 From: Jordan Crouse Date: Wed, 18 Jun 2008 11:34:38 -0600 Subject: [PATCH] --- yaml --- r: 98293 b: refs/heads/master c: ffe6e1da86d21d7855495b5a772c93f050258f6e h: refs/heads/master i: 98291: 851cef043601613de18eaebbfe83e819a78eb034 v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/geode_32.c | 5 ++++- trunk/include/asm-x86/geode.h | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 4c99a90bca03..7e55d1803826 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d3942cff620bea073fc4e3c8ed878eb1e84615ce +refs/heads/master: ffe6e1da86d21d7855495b5a772c93f050258f6e diff --git a/trunk/arch/x86/kernel/geode_32.c b/trunk/arch/x86/kernel/geode_32.c index e8edd63ab000..9b08e852fd1a 100644 --- a/trunk/arch/x86/kernel/geode_32.c +++ b/trunk/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; diff --git a/trunk/include/asm-x86/geode.h b/trunk/include/asm-x86/geode.h index 6e6458853a36..bb06027fc83e 100644 --- a/trunk/include/asm-x86/geode.h +++ b/trunk/include/asm-x86/geode.h @@ -112,8 +112,8 @@ extern int geode_get_dev_base(unsigned int dev); #define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */ #define VSA_VR_SIGNATURE 0x0003 #define VSA_VR_MEM_SIZE 0x0200 -#define VSA_SIG 0x4132 /* signature is ascii 'VSA2' */ - +#define AMD_VSA_SIG 0x4132 /* signature is ascii 'VSA2' */ +#define GSW_VSA_SIG 0x534d /* General Software signature */ /* GPIO */ #define GPIO_OUTPUT_VAL 0x00