summaryrefslogtreecommitdiffstats
path: root/linux-2.4.x/drivers/mtd/devices/lart.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux-2.4.x/drivers/mtd/devices/lart.c')
-rw-r--r--linux-2.4.x/drivers/mtd/devices/lart.c94
1 files changed, 44 insertions, 50 deletions
diff --git a/linux-2.4.x/drivers/mtd/devices/lart.c b/linux-2.4.x/drivers/mtd/devices/lart.c
index e049ace..0320e0f 100644
--- a/linux-2.4.x/drivers/mtd/devices/lart.c
+++ b/linux-2.4.x/drivers/mtd/devices/lart.c
@@ -2,7 +2,7 @@
/*
* MTD driver for the 28F160F3 Flash Memory (non-CFI) on LART.
*
- * $Id: lart.c,v 1.2 2001/10/02 15:05:13 dwmw2 Exp $
+ * $Id: lart.c,v 1.10 2006/03/29 08:31:11 dwmw2 Exp $
*
* Author: Abraham vd Merwe <abraham@2d3d.co.za>
*
@@ -42,8 +42,9 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
-#include <linux/version.h>
+#include <linux/init.h>
#include <linux/errno.h>
+#include <linux/string.h>
#include <linux/mtd/mtd.h>
#ifdef HAVE_PARTITIONS
#include <linux/mtd/partitions.h>
@@ -121,7 +122,7 @@ static char module_name[] = "lart";
/*
* The data line mapping on LART is as follows:
- *
+ *
* U2 CPU | U3 CPU
* -------------------
* 0 20 | 0 12
@@ -180,7 +181,7 @@ static char module_name[] = "lart";
(((x) & 0x00004000) >> 13) \
)
-/*
+/*
* The address line mapping on LART is as follows:
*
* U3 CPU | U2 CPU
@@ -203,7 +204,7 @@ static char module_name[] = "lart";
* 12 15 | 12 15
* 13 14 | 13 14
* 14 16 | 14 16
- *
+ *
* MAIN BLOCK BOUNDARY
*
* 15 17 | 15 18
@@ -433,7 +434,7 @@ static int flash_erase (struct mtd_info *mtd,struct erase_info *instr)
}
instr->state = MTD_ERASE_DONE;
- if (instr->callback) instr->callback (instr);
+ mtd_erase_callback(instr);
return (0);
}
@@ -580,50 +581,43 @@ static int flash_write (struct mtd_info *mtd,loff_t to,size_t len,size_t *retlen
/***************************************************************************************************/
-#define NB_OF(x) (sizeof (x) / sizeof (x[0]))
-
static struct mtd_info mtd;
-static struct mtd_erase_region_info erase_regions[] =
-{
- /* parameter blocks */
- {
- offset: 0x00000000,
- erasesize: FLASH_BLOCKSIZE_PARAM,
- numblocks: FLASH_NUMBLOCKS_16m_PARAM
- },
- /* main blocks */
- {
- offset: FLASH_BLOCKSIZE_PARAM * FLASH_NUMBLOCKS_16m_PARAM,
- erasesize: FLASH_BLOCKSIZE_MAIN,
- numblocks: FLASH_NUMBLOCKS_16m_MAIN
- }
+static struct mtd_erase_region_info erase_regions[] = {
+ /* parameter blocks */
+ {
+ .offset = 0x00000000,
+ .erasesize = FLASH_BLOCKSIZE_PARAM,
+ .numblocks = FLASH_NUMBLOCKS_16m_PARAM,
+ },
+ /* main blocks */
+ {
+ .offset = FLASH_BLOCKSIZE_PARAM * FLASH_NUMBLOCKS_16m_PARAM,
+ .erasesize = FLASH_BLOCKSIZE_MAIN,
+ .numblocks = FLASH_NUMBLOCKS_16m_MAIN,
+ }
};
#ifdef HAVE_PARTITIONS
-static struct mtd_partition lart_partitions[] =
-{
- /* blob */
- {
- name: "blob",
- offset: BLOB_START,
- size: BLOB_LEN,
- mask_flags: 0
- },
- /* kernel */
- {
- name: "kernel",
- offset: KERNEL_START, /* MTDPART_OFS_APPEND */
- size: KERNEL_LEN,
- mask_flags: 0
- },
- /* initial ramdisk / file system */
- {
- name: "file system",
- offset: INITRD_START, /* MTDPART_OFS_APPEND */
- size: INITRD_LEN, /* MTDPART_SIZ_FULL */
- mask_flags: 0
- }
+static struct mtd_partition lart_partitions[] = {
+ /* blob */
+ {
+ .name = "blob",
+ .offset = BLOB_START,
+ .size = BLOB_LEN,
+ },
+ /* kernel */
+ {
+ .name = "kernel",
+ .offset = KERNEL_START, /* MTDPART_OFS_APPEND */
+ .size = KERNEL_LEN,
+ },
+ /* initial ramdisk / file system */
+ {
+ .name = "file system",
+ .offset = INITRD_START, /* MTDPART_OFS_APPEND */
+ .size = INITRD_LEN, /* MTDPART_SIZ_FULL */
+ }
};
#endif
@@ -644,12 +638,12 @@ int __init lart_flash_init (void)
mtd.flags = MTD_CAP_NORFLASH;
mtd.size = FLASH_BLOCKSIZE_PARAM * FLASH_NUMBLOCKS_16m_PARAM + FLASH_BLOCKSIZE_MAIN * FLASH_NUMBLOCKS_16m_MAIN;
mtd.erasesize = FLASH_BLOCKSIZE_MAIN;
- mtd.numeraseregions = NB_OF (erase_regions);
+ mtd.numeraseregions = ARRAY_SIZE(erase_regions);
mtd.eraseregions = erase_regions;
- mtd.module = THIS_MODULE;
mtd.erase = flash_erase;
mtd.read = flash_read;
mtd.write = flash_write;
+ mtd.owner = THIS_MODULE;
#ifdef LART_DEBUG
printk (KERN_DEBUG
@@ -674,9 +668,9 @@ int __init lart_flash_init (void)
result,mtd.eraseregions[result].numblocks);
#ifdef HAVE_PARTITIONS
- printk ("\npartitions = %d\n",NB_OF (lart_partitions));
+ printk ("\npartitions = %d\n", ARRAY_SIZE(lart_partitions));
- for (result = 0; result < NB_OF (lart_partitions); result++)
+ for (result = 0; result < ARRAY_SIZE(lart_partitions); result++)
printk (KERN_DEBUG
"\n\n"
"lart_partitions[%d].name = %s\n"
@@ -691,7 +685,7 @@ int __init lart_flash_init (void)
#ifndef HAVE_PARTITIONS
result = add_mtd_device (&mtd);
#else
- result = add_mtd_partitions (&mtd,lart_partitions,NB_OF (lart_partitions));
+ result = add_mtd_partitions (&mtd,lart_partitions, ARRAY_SIZE(lart_partitions));
#endif
return (result);