aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-05-25 03:37:12 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-05-29 05:49:29 -0400
commit22d6a1cba3e9ec9baf8ce4d8dd1d088e112a64f1 (patch)
treeb16a912edb689cba40395f778acb3d5dd9426fd8 /include
parent36b48973b8f1818d0ae6d16e548081d00162ae39 (diff)
[SPARC64]: Report proper system soft state to the hypervisor.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/asm-sparc64/bugs.h8
-rw-r--r--include/asm-sparc64/hypervisor.h10
-rw-r--r--include/asm-sparc64/oplib.h2
-rw-r--r--include/asm-sparc64/sstate.h13
4 files changed, 27 insertions, 6 deletions
diff --git a/include/asm-sparc64/bugs.h b/include/asm-sparc64/bugs.h
index 120422fdb02f..bf39d86c0c9e 100644
--- a/include/asm-sparc64/bugs.h
+++ b/include/asm-sparc64/bugs.h
@@ -1,9 +1,8 @@
1/* $Id: bugs.h,v 1.1 1996/12/26 13:25:20 davem Exp $ 1/* bugs.h: Sparc64 probes for various bugs.
2 * include/asm-sparc64/bugs.h: Sparc probes for various bugs.
3 * 2 *
4 * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) 3 * Copyright (C) 1996, 2007 David S. Miller (davem@davemloft.net)
5 */ 4 */
6 5#include <asm/sstate.h>
7 6
8extern unsigned long loops_per_jiffy; 7extern unsigned long loops_per_jiffy;
9 8
@@ -12,4 +11,5 @@ static void __init check_bugs(void)
12#ifndef CONFIG_SMP 11#ifndef CONFIG_SMP
13 cpu_data(0).udelay_val = loops_per_jiffy; 12 cpu_data(0).udelay_val = loops_per_jiffy;
14#endif 13#endif
14 sstate_running();
15} 15}
diff --git a/include/asm-sparc64/hypervisor.h b/include/asm-sparc64/hypervisor.h
index a5558c87556d..17b233b64aff 100644
--- a/include/asm-sparc64/hypervisor.h
+++ b/include/asm-sparc64/hypervisor.h
@@ -162,10 +162,15 @@
162 * terminated 7-bit ASCII string of up to 31 characters not including the 162 * terminated 7-bit ASCII string of up to 31 characters not including the
163 * NULL termination. 163 * NULL termination.
164 */ 164 */
165#define HV_FAST_MACH_SET_SOFT_STATE 0x03 165#define HV_FAST_MACH_SET_SOFT_STATE 0x70
166#define HV_SOFT_STATE_NORMAL 0x01 166#define HV_SOFT_STATE_NORMAL 0x01
167#define HV_SOFT_STATE_TRANSITION 0x02 167#define HV_SOFT_STATE_TRANSITION 0x02
168 168
169#ifndef __ASSEMBLY__
170extern unsigned long sun4v_mach_set_soft_state(unsigned long soft_state,
171 unsigned long msg_string_ra);
172#endif
173
169/* mach_get_soft_state() 174/* mach_get_soft_state()
170 * TRAP: HV_FAST_TRAP 175 * TRAP: HV_FAST_TRAP
171 * FUNCTION: HV_FAST_MACH_GET_SOFT_STATE 176 * FUNCTION: HV_FAST_MACH_GET_SOFT_STATE
@@ -181,7 +186,7 @@
181 * for the software state pointer are the same as for mach_set_soft_state() 186 * for the software state pointer are the same as for mach_set_soft_state()
182 * above. 187 * above.
183 */ 188 */
184#define HV_FAST_MACH_GET_SOFT_STATE 0x04 189#define HV_FAST_MACH_GET_SOFT_STATE 0x71
185 190
186/* CPU services. 191/* CPU services.
187 * 192 *
@@ -2204,6 +2209,7 @@ extern void sun4v_hvapi_unregister(unsigned long group);
2204extern int sun4v_hvapi_get(unsigned long group, 2209extern int sun4v_hvapi_get(unsigned long group,
2205 unsigned long *major, 2210 unsigned long *major,
2206 unsigned long *minor); 2211 unsigned long *minor);
2212extern void sun4v_hvapi_init(void);
2207#endif 2213#endif
2208 2214
2209#endif /* !(_SPARC64_HYPERVISOR_H) */ 2215#endif /* !(_SPARC64_HYPERVISOR_H) */
diff --git a/include/asm-sparc64/oplib.h b/include/asm-sparc64/oplib.h
index 6a0da3b1695c..07275e2366a3 100644
--- a/include/asm-sparc64/oplib.h
+++ b/include/asm-sparc64/oplib.h
@@ -316,6 +316,8 @@ extern int prom_setprop(int node, const char *prop_name, char *prop_value,
316 316
317extern int prom_pathtoinode(const char *path); 317extern int prom_pathtoinode(const char *path);
318extern int prom_inst2pkg(int); 318extern int prom_inst2pkg(int);
319extern int prom_service_exists(const char *service_name);
320extern void prom_sun4v_guest_soft_state(void);
319 321
320/* CPU probing helpers. */ 322/* CPU probing helpers. */
321struct device_node; 323struct device_node;
diff --git a/include/asm-sparc64/sstate.h b/include/asm-sparc64/sstate.h
new file mode 100644
index 000000000000..a7c35dbcb281
--- /dev/null
+++ b/include/asm-sparc64/sstate.h
@@ -0,0 +1,13 @@
1#ifndef _SPARC64_SSTATE_H
2#define _SPARC64_SSTATE_H
3
4extern void sstate_booting(void);
5extern void sstate_running(void);
6extern void sstate_halt(void);
7extern void sstate_poweroff(void);
8extern void sstate_panic(void);
9extern void sstate_reboot(void);
10
11extern void sun4v_sstate_init(void);
12
13#endif /* _SPARC64_SSTATE_H */