mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
cs5535: move VSA2 checks into linux/cs5535.h
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>
This commit is contained in:
parent
2e8c12436f
commit
f060f27007
6 changed files with 36 additions and 45 deletions
|
@ -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);
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -36,6 +36,38 @@
|
|||
#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
|
||||
|
|
Loading…
Reference in a new issue