Merge with git://www.denx.de/git/u-boot-testing
[oweals/u-boot.git] / fs / jffs2 / compr_rubin.c
index cf01f888a47a12b393874d59c7c419ede0ebdd41..b93977c054cea38afe6193fd581b462cc4a30601 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 #include <config.h>
-#if (CONFIG_COMMANDS & CFG_CMD_JFFS2)
+#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) || defined(CONFIG_CMD_JFFS2)
 
 #include <jffs2/jffs2.h>
 #include <jffs2/compr_rubin.h>
@@ -48,8 +48,8 @@
 void rubin_do_decompress(unsigned char *bits, unsigned char *in,
                         unsigned char *page_out, __u32 destlen)
 {
-       register char *curr = page_out;
-       char *end = page_out + destlen;
+       register char *curr = (char *)page_out;
+       char *end = (char *)(page_out + destlen);
        register unsigned long temp;
        register unsigned long result;
        register unsigned long p;
@@ -85,8 +85,10 @@ void rubin_do_decompress(unsigned char *bits, unsigned char *in,
                                rec_q <<= 1;
                                rec_q |= (temp >> (bit++ ^ 7)) & 1;
                                if (bit > 31) {
+                                       u32 *p = (u32 *)in;
                                        bit = 0;
-                                       temp = *(++((u32 *) in));
+                                       temp = *(++p);
+                                       in = (unsigned char *)p;
                                }
                        }
                        i0 =  (bits[i] * p) >> 8;