diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-05-25 03:37:12 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-05-29 05:49:29 -0400 |
commit | 22d6a1cba3e9ec9baf8ce4d8dd1d088e112a64f1 (patch) | |
tree | b16a912edb689cba40395f778acb3d5dd9426fd8 /include/asm-sparc64 | |
parent | 36b48973b8f1818d0ae6d16e548081d00162ae39 (diff) |
[SPARC64]: Report proper system soft state to the hypervisor.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r-- | include/asm-sparc64/bugs.h | 8 | ||||
-rw-r--r-- | include/asm-sparc64/hypervisor.h | 10 | ||||
-rw-r--r-- | include/asm-sparc64/oplib.h | 2 | ||||
-rw-r--r-- | include/asm-sparc64/sstate.h | 13 |
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 | ||
8 | extern unsigned long loops_per_jiffy; | 7 | extern 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__ | ||
170 | extern 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); | |||
2204 | extern int sun4v_hvapi_get(unsigned long group, | 2209 | extern int sun4v_hvapi_get(unsigned long group, |
2205 | unsigned long *major, | 2210 | unsigned long *major, |
2206 | unsigned long *minor); | 2211 | unsigned long *minor); |
2212 | extern 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 | ||
317 | extern int prom_pathtoinode(const char *path); | 317 | extern int prom_pathtoinode(const char *path); |
318 | extern int prom_inst2pkg(int); | 318 | extern int prom_inst2pkg(int); |
319 | extern int prom_service_exists(const char *service_name); | ||
320 | extern void prom_sun4v_guest_soft_state(void); | ||
319 | 321 | ||
320 | /* CPU probing helpers. */ | 322 | /* CPU probing helpers. */ |
321 | struct device_node; | 323 | struct 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 | |||
4 | extern void sstate_booting(void); | ||
5 | extern void sstate_running(void); | ||
6 | extern void sstate_halt(void); | ||
7 | extern void sstate_poweroff(void); | ||
8 | extern void sstate_panic(void); | ||
9 | extern void sstate_reboot(void); | ||
10 | |||
11 | extern void sun4v_sstate_init(void); | ||
12 | |||
13 | #endif /* _SPARC64_SSTATE_H */ | ||