cs5535: move VSA2 checks into linux/cs5535.h
authorAndres Salomon <dilinger@collabora.co.uk>
Tue, 15 Dec 2009 02:00:40 +0000 (18:00 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Dec 2009 16:53:28 +0000 (08:53 -0800)
Signed-off-by: Andres 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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/include/asm/geode.h
arch/x86/kernel/geode_32.c
arch/x86/kernel/olpc.c
drivers/video/geode/display_gx.c
drivers/video/geode/lxfb_ops.c
include/linux/cs5535.h

index 976b3f11c00977783616c3ba8b258cecb4bd3393..df1eaf87426a5d5dcc792b1515102b40a0872598 100644 (file)
@@ -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);
index 9b08e852fd1ae63d3312552dd6898622ee4fd73b..9dad6ca6cd70d2812426d7da93224aeaa2d69e33 100644 (file)
@@ -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())
index 4006c522adc780a0ce016b43b2d5a7ae93ca0f14..9d1d263f786fdd694513ba8383b635bcdcea319e 100644 (file)
@@ -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",
index e759895bf3d3d19deb02ec6323f7c8ff646b96fc..3ddf055e302e995d74d4b154e611b71ae71a0a13 100644 (file)
@@ -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 */
index b1cd49c9935618a6af9db4602021f41e8aaf23d4..fe1ee7cbccda8feff9cfc5480caa4bf3c0179120 100644 (file)
@@ -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 */
index 39e93e8ed95d98d36102a87a7781f35985d2935e..eb34108a608b800994190f676d3eb17715d5847a 100644 (file)
 #define LBAR_ACPI_SIZE         0x40
 #define LBAR_PMS_SIZE          0x80
 
+/* 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 */
+
+#include <linux/io.h>
+
+static inline int cs5535_has_vsa2(void)
+{
+       static int has_vsa2 = -1;
+
+       if (has_vsa2 == -1) {
+               uint16_t 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;
+}
+
 /* GPIOs */
 #define GPIO_OUTPUT_VAL                0x00
 #define GPIO_OUTPUT_ENABLE     0x04