diff options
| author | Nathan Fontenot <nfont@austin.ibm.com> | 2004-08-23 09:38:48 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-08-23 09:38:48 -0700 |
| commit | d613adcd449b6035dcec9cf5cea71ec319dedd1e (patch) | |
| tree | 40f22fa74420642994798def218ee7a8bb63e7cf | |
| parent | bf851860046667de3d71d11b4a297e2f37069931 (diff) | |
[PATCH] ppc64: fix enable_surveillance() for power5
On some platforms (notably power5) you can't enable surveillance
(firmware/service processor watchdog) from the kernel - you have to do
it in the firmware.
This patch changes enable_surveillance() to make the message that is
printed in this situation more informative. Additionaly, the rtas_call
was changed to rtas_set_indicator so as to avoid having to handle
RTAS_BUSY returns.
Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | arch/ppc64/kernel/rtasd.c | 15 | ||||
| -rw-r--r-- | include/asm-ppc64/rtas.h | 11 |
2 files changed, 15 insertions, 11 deletions
diff --git a/arch/ppc64/kernel/rtasd.c b/arch/ppc64/kernel/rtasd.c index a9b676ce88c6..253b7290e24f 100644 --- a/arch/ppc64/kernel/rtasd.c +++ b/arch/ppc64/kernel/rtasd.c @@ -343,15 +343,18 @@ static int enable_surveillance(int timeout) { int error; - error = rtas_call(rtas_token("set-indicator"), 3, 1, NULL, - SURVEILLANCE_TOKEN, 0, timeout); + error = rtas_set_indicator(SURVEILLANCE_TOKEN, 0, timeout); - if (error) { - printk(KERN_ERR "rtasd: could not enable surveillance\n"); - return -1; + if (error == 0) + return 0; + + if (error == RTAS_NO_SUCH_INDICATOR) { + printk(KERN_INFO "rtasd: surveillance not supported\n"); + return 0; } - return 0; + printk(KERN_ERR "rtasd: could not update surveillance\n"); + return -1; } static int get_eventscan_parms(void) diff --git a/include/asm-ppc64/rtas.h b/include/asm-ppc64/rtas.h index 5c32e60371e2..90e38610e308 100644 --- a/include/asm-ppc64/rtas.h +++ b/include/asm-ppc64/rtas.h @@ -22,12 +22,13 @@ /* Buffer size for ppc_rtas system call. */ #define RTAS_RMOBUF_MAX (64 * 1024) -/* RTAS return codes */ -#define RTAS_BUSY -2 /* RTAS Return Status - Busy */ -#define RTAS_EXTENDED_DELAY_MIN 9900 -#define RTAS_EXTENDED_DELAY_MAX 9905 +/* RTAS return status codes */ +#define RTAS_BUSY -2 /* RTAS Busy */ +#define RTAS_NO_SUCH_INDICATOR -3 /* No such indicator implemented */ +#define RTAS_EXTENDED_DELAY_MIN 9900 +#define RTAS_EXTENDED_DELAY_MAX 9905 -#define RTAS_UNKNOWN_OP -1099 /* Return Status - Unknown RTAS Token */ +#define RTAS_UNKNOWN_OP -1099 /* Unknown RTAS Token */ /* * In general to call RTAS use rtas_token("string") to lookup |
