Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / drivers / mtd / devices / ms02-nv.c
index 3a331aa..485f663 100644 (file)
@@ -6,7 +6,7 @@
  *     as published by the Free Software Foundation; either version
  *     2 of the License, or (at your option) any later version.
  *
- *     $Id: ms02-nv.c,v 1.6 2003/08/19 09:25:36 dwmw2 Exp $
+ *     $Id: ms02-nv.c,v 1.11 2005/11/14 13:41:47 macro Exp $
  */
 
 #include <linux/init.h>
@@ -31,7 +31,7 @@
 static char version[] __initdata =
        "ms02-nv.c: v.1.0.0  13 Aug 2001  Maciej W. Rozycki.\n";
 
-MODULE_AUTHOR("Maciej W. Rozycki <macro@ds2.pg.gda.pl>");
+MODULE_AUTHOR("Maciej W. Rozycki <macro@linux-mips.org>");
 MODULE_DESCRIPTION("DEC MS02-NV NVRAM module driver");
 MODULE_LICENSE("GPL");
 
@@ -59,7 +59,7 @@ static struct mtd_info *root_ms02nv_mtd;
 static int ms02nv_read(struct mtd_info *mtd, loff_t from,
                        size_t len, size_t *retlen, u_char *buf)
 {
-       struct ms02nv_private *mp = (struct ms02nv_private *)mtd->priv;
+       struct ms02nv_private *mp = mtd->priv;
 
        if (from + len > mtd->size)
                return -EINVAL;
@@ -73,7 +73,7 @@ static int ms02nv_read(struct mtd_info *mtd, loff_t from,
 static int ms02nv_write(struct mtd_info *mtd, loff_t to,
                        size_t len, size_t *retlen, const u_char *buf)
 {
-       struct ms02nv_private *mp = (struct ms02nv_private *)mtd->priv;
+       struct ms02nv_private *mp = mtd->priv;
 
        if (to + len > mtd->size)
                return -EINVAL;
@@ -99,8 +99,8 @@ static inline uint ms02nv_probe_one(ulong addr)
         * The firmware writes MS02NV_ID at MS02NV_MAGIC and also
         * a diagnostic status at MS02NV_DIAG.
         */
-       ms02nv_diagp = (ms02nv_uint *)(KSEG1ADDR(addr + MS02NV_DIAG));
-       ms02nv_magicp = (ms02nv_uint *)(KSEG1ADDR(addr + MS02NV_MAGIC));
+       ms02nv_diagp = (ms02nv_uint *)(CKSEG1ADDR(addr + MS02NV_DIAG));
+       ms02nv_magicp = (ms02nv_uint *)(CKSEG1ADDR(addr + MS02NV_MAGIC));
        err = get_dbe(ms02nv_magic, ms02nv_magicp);
        if (err)
                return 0;
@@ -233,7 +233,7 @@ static int __init ms02nv_init_one(ulong addr)
                goto err_out_csr_res;
        }
 
-       printk(KERN_INFO "mtd%d: %s at 0x%08lx, size %uMiB.\n",
+       printk(KERN_INFO "mtd%d: %s at 0x%08lx, size %zuMiB.\n",
                mtd->index, ms02nv_name, addr, size >> 20);
 
        mp->next = root_ms02nv_mtd;
@@ -265,7 +265,7 @@ err_out_mod_res:
 static void __exit ms02nv_remove_one(void)
 {
        struct mtd_info *mtd = root_ms02nv_mtd;
-       struct ms02nv_private *mp = (struct ms02nv_private *)mtd->priv;
+       struct ms02nv_private *mp = mtd->priv;
 
        root_ms02nv_mtd = mp->next;
 
@@ -293,13 +293,13 @@ static int __init ms02nv_init(void)
 
        switch (mips_machtype) {
        case MACH_DS5000_200:
-               csr = (volatile u32 *)KN02_CSR_BASE;
+               csr = (volatile u32 *)CKSEG1ADDR(KN02_SLOT_BASE + KN02_CSR);
                if (*csr & KN02_CSR_BNK32M)
                        stride = 2;
                break;
        case MACH_DS5000_2X0:
        case MACH_DS5900:
-               csr = (volatile u32 *)KN03_MCR_BASE;
+               csr = (volatile u32 *)CKSEG1ADDR(KN03_SLOT_BASE + IOASIC_MCR);
                if (*csr & KN03_MCR_BNK32M)
                        stride = 2;
                break;
@@ -308,7 +308,7 @@ static int __init ms02nv_init(void)
                break;
        }
 
-       for (i = 0; i < (sizeof(ms02nv_addrs) / sizeof(*ms02nv_addrs)); i++)
+       for (i = 0; i < ARRAY_SIZE(ms02nv_addrs); i++)
                if (!ms02nv_init_one(ms02nv_addrs[i] << stride))
                        count++;