All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jordan Crouse <jordan.crouse@amd.com>
To: linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, mingo@redhat.com, linux-geode@lists.infradead.org
Subject: [PATCH] geode:  Add a VSA2 ID for General Software
Date: Wed, 18 Jun 2008 11:34:38 -0600	[thread overview]
Message-ID: <20080618173438.GA9130@cosmic.amd.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 465 bytes --]

We have learned from bitter experience that one of the Geode BIOS vendors,
General Software, uses a different ID for their VSA implementation then
the canonical version from AMD & Insyde.  This patch adds the ID to the
have_geode_vsa2() check, and should make lxfb work again on many GSW
platforms.  If Linus is planning another -rcX revision it would be good
to try and get this in, otherwise please schedule this for the stable
series and 2.6.27.

Thanks,
Jordan

[-- Attachment #2: add-gsw-id.patch --]
[-- Type: text/x-diff, Size: 1719 bytes --]

[PATCH] geode:  Add a VSA2 ID for General Software

From: Jordan Crouse <jordan.crouse@amd.com>

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>
---

 arch/x86/kernel/geode_32.c |    5 ++++-
 include/asm-x86/geode.h    |    4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/geode_32.c b/arch/x86/kernel/geode_32.c
index e8edd63..9b08e85 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;
diff --git a/include/asm-x86/geode.h b/include/asm-x86/geode.h
index 6e64588..bb06027 100644
--- a/include/asm-x86/geode.h
+++ b/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

             reply	other threads:[~2008-06-18 17:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-18 17:34 Jordan Crouse [this message]
2008-06-19 12:20 ` [PATCH] geode: Add a VSA2 ID for General Software Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080618173438.GA9130@cosmic.amd.com \
    --to=jordan.crouse@amd.com \
    --cc=linux-geode@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.