aboutsummaryrefslogtreecommitdiff
path: root/lib_generic
diff options
context:
space:
mode:
authorwdenk <wdenk>2004-10-11 22:43:02 +0000
committerwdenk <wdenk>2004-10-11 22:43:02 +0000
commit2ee665339b06285a5fd9e36410d1167efc9b0606 (patch)
treed6de628020ca2600a1ecb20027ce06d1b7986d1d /lib_generic
parent9455b7f39cecbcd869b1ba49a1307cb97e67360f (diff)
downloadu-boot-linaro-stable-2ee665339b06285a5fd9e36410d1167efc9b0606.tar.gz
* Patch by Pantelis Antoniou, 14 Sep 2004:
Fix early serial hang when CONFIG_SERIAL_MULTI is defined. * Patch by Pantelis Antoniou, 14 Sep 2004: Kick watchdog when bz-decompressing
Diffstat (limited to 'lib_generic')
-rw-r--r--lib_generic/bzlib.c5
-rw-r--r--lib_generic/bzlib_decompress.c14
2 files changed, 19 insertions, 0 deletions
diff --git a/lib_generic/bzlib.c b/lib_generic/bzlib.c
index 8a64b799e..87e6a6eed 100644
--- a/lib_generic/bzlib.c
+++ b/lib_generic/bzlib.c
@@ -1,4 +1,6 @@
#include <config.h>
+#include <common.h>
+#include <watchdog.h>
#ifdef CONFIG_BZIP2
/*
@@ -841,6 +843,9 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
if (s->strm != strm) return BZ_PARAM_ERROR;
while (True) {
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
+ WATCHDOG_RESET();
+#endif
if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
if (s->state == BZ_X_OUTPUT) {
if (s->smallDecompress)
diff --git a/lib_generic/bzlib_decompress.c b/lib_generic/bzlib_decompress.c
index a4a16879e..a5750520c 100644
--- a/lib_generic/bzlib_decompress.c
+++ b/lib_generic/bzlib_decompress.c
@@ -1,4 +1,6 @@
#include <config.h>
+#include <common.h>
+#include <watchdog.h>
#ifdef CONFIG_BZIP2
/*-------------------------------------------------------------*/
@@ -416,6 +418,9 @@ Int32 BZ2_decompress ( DState* s )
while (True) {
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
+ WATCHDOG_RESET();
+#endif
if (nextSym == EOB) break;
if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) {
@@ -498,6 +503,9 @@ Int32 BZ2_decompress ( DState* s )
if (s->mtfbase[0] == 0) {
kk = MTFA_SIZE-1;
for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) {
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
+ WATCHDOG_RESET();
+#endif
for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];
kk--;
@@ -560,6 +568,9 @@ Int32 BZ2_decompress ( DState* s )
}
while (i != s->origPtr);
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
+ WATCHDOG_RESET();
+#endif
s->tPos = s->origPtr;
s->nblock_used = 0;
if (s->blockRandomised) {
@@ -572,6 +583,9 @@ Int32 BZ2_decompress ( DState* s )
} else {
+#if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
+ WATCHDOG_RESET();
+#endif
/*-- compute the T^(-1) vector --*/
for (i = 0; i < nblock; i++) {
uc = (UChar)(s->tt[i] & 0xff);