diff options
author | John Rose <johnrose@austin.ibm.com> | 2006-06-05 17:31:48 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-06-09 07:21:06 -0400 |
commit | 507279db1819aacf4022e790b3fc8bc8cf56debf (patch) | |
tree | e5e95d50b093f0eab31e7856b9f596caa6e097af /include/asm-powerpc | |
parent | 4a3ecc622465dbff7404139a8ad18bf4cb99f836 (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.h | 8 |
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); | |||
177 | extern void rtas_get_rtc_time(struct rtc_time *rtc_time); | 177 | extern void rtas_get_rtc_time(struct rtc_time *rtc_time); |
178 | extern int rtas_set_rtc_time(struct rtc_time *rtc_time); | 178 | extern 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 */ | 180 | extern unsigned int rtas_busy_delay_time(int status); |
181 | unsigned int rtas_extended_busy_delay_time(int status); | 181 | extern unsigned int rtas_busy_delay(int status); |
182 | static inline int rtas_is_extended_busy(int status) | ||
183 | { | ||
184 | return status >= 9900 && status <= 9909; | ||
185 | } | ||
186 | 182 | ||
187 | extern void pSeries_log_error(char *buf, unsigned int err_type, int fatal); | 183 | extern void pSeries_log_error(char *buf, unsigned int err_type, int fatal); |
188 | 184 | ||