aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-powerpc
diff options
context:
space:
mode:
authorJohn Rose <johnrose@austin.ibm.com>2006-06-05 17:31:48 -0400
committerPaul Mackerras <paulus@samba.org>2006-06-09 07:21:06 -0400
commit507279db1819aacf4022e790b3fc8bc8cf56debf (patch)
treee5e95d50b093f0eab31e7856b9f596caa6e097af /include/asm-powerpc
parent4a3ecc622465dbff7404139a8ad18bf4cb99f836 (diff)
[PATCH] powerpc: reorg RTAS delay code
This patch attempts to handle RTAS "busy" return codes in a more simple and consistent manner. Typical callers of RTAS shouldn't have to manage wait times and delay calls. This patch also changes the kernel to use msleep() rather than udelay() when a runtime delay is necessary. This will avoid CPU soft lockups for extended delay conditions. Signed-off-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r--include/asm-powerpc/rtas.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/include/asm-powerpc/rtas.h b/include/asm-powerpc/rtas.h
index f43c6835e62a..a3b4e55569c7 100644
--- a/include/asm-powerpc/rtas.h
+++ b/include/asm-powerpc/rtas.h
@@ -177,12 +177,8 @@ extern unsigned long rtas_get_boot_time(void);
177extern void rtas_get_rtc_time(struct rtc_time *rtc_time); 177extern void rtas_get_rtc_time(struct rtc_time *rtc_time);
178extern int rtas_set_rtc_time(struct rtc_time *rtc_time); 178extern int rtas_set_rtc_time(struct rtc_time *rtc_time);
179 179
180/* Given an RTAS status code of 9900..9905 compute the hinted delay */ 180extern unsigned int rtas_busy_delay_time(int status);
181unsigned int rtas_extended_busy_delay_time(int status); 181extern unsigned int rtas_busy_delay(int status);
182static inline int rtas_is_extended_busy(int status)
183{
184 return status >= 9900 && status <= 9909;
185}
186 182
187extern void pSeries_log_error(char *buf, unsigned int err_type, int fatal); 183extern void pSeries_log_error(char *buf, unsigned int err_type, int fatal);
188 184