Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f060f270 authored by Andres Salomon's avatar Andres Salomon Committed by Linus Torvalds
Browse files

cs5535: move VSA2 checks into linux/cs5535.h



Signed-off-by: default avatarAndres Salomon <dilinger@collabora.co.uk>
Cc: Jordan Crouse <jordan@cosmicpenguin.net>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Chris Ball <cjb@laptop.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 2e8c1243
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -95,16 +95,6 @@ extern int geode_get_dev_base(unsigned int dev);
#define PM_AWKD			0x50
#define PM_SSC			0x54

/* VSA2 magic values */

#define VSA_VRC_INDEX		0xAC1C
#define VSA_VRC_DATA		0xAC1E
#define VSA_VR_UNLOCK		0xFC53	/* unlock virtual register */
#define VSA_VR_SIGNATURE	0x0003
#define VSA_VR_MEM_SIZE		0x0200
#define AMD_VSA_SIG		0x4132	/* signature is ascii 'VSA2' */
#define GSW_VSA_SIG		0x534d  /* General Software signature */

static inline u32 geode_gpio(unsigned int nr)
{
	BUG_ON(nr > 28);
@@ -148,15 +138,6 @@ static inline int is_geode(void)
	return (is_geode_gx() || is_geode_lx());
}

#ifdef CONFIG_MGEODE_LX
extern int geode_has_vsa2(void);
#else
static inline int geode_has_vsa2(void)
{
	return 0;
}
#endif

static inline void geode_mfgpt_write(int timer, u16 reg, u16 value)
{
	u32 base = geode_get_dev_base(GEODE_DEV_MFGPT);
+0 −22
Original line number Diff line number Diff line
@@ -161,28 +161,6 @@ void geode_gpio_setup_event(unsigned int gpio, int pair, int pme)
}
EXPORT_SYMBOL_GPL(geode_gpio_setup_event);

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.
		 */
		outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);
		outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);

		val = inw(VSA_VRC_DATA);
		has_vsa2 = (val == AMD_VSA_SIG || val == GSW_VSA_SIG);
	}

	return has_vsa2;
}
EXPORT_SYMBOL_GPL(geode_has_vsa2);

static int __init geode_southbridge_init(void)
{
	if (!is_geode())
+2 −2
Original line number Diff line number Diff line
@@ -212,7 +212,7 @@ static int __init olpc_init(void)
	unsigned char *romsig;

	/* The ioremap check is dangerous; limit what we run it on */
	if (!is_geode() || geode_has_vsa2())
	if (!is_geode() || cs5535_has_vsa2())
		return 0;

	spin_lock_init(&ec_lock);
@@ -244,7 +244,7 @@ static int __init olpc_init(void)
			(unsigned char *) &olpc_platform_info.ecver, 1);

	/* check to see if the VSA exists */
	if (geode_has_vsa2())
	if (cs5535_has_vsa2())
		olpc_platform_info.flags |= OLPC_F_VSA;

	printk(KERN_INFO "OLPC board revision %s%X (EC=%x)\n",
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ unsigned int gx_frame_buffer_size(void)
{
	unsigned int val;

	if (!geode_has_vsa2()) {
	if (!cs5535_has_vsa2()) {
		uint32_t hi, lo;

		/* The number of pages is (PMAX - PMIN)+1 */
+1 −1
Original line number Diff line number Diff line
@@ -307,7 +307,7 @@ unsigned int lx_framebuffer_size(void)
{
	unsigned int val;

	if (!geode_has_vsa2()) {
	if (!cs5535_has_vsa2()) {
		uint32_t hi, lo;

		/* The number of pages is (PMAX - PMIN)+1 */
Loading