tree a47bc31cb0593af093530a6ac69365962ab81308
parent 167e1770e526c6c6cdff5014e32f5a3363c017f3
author Artem B. Bityuckiy <[EMAIL PROTECTED]> Sat, 19 Mar 2005 15:33:59 +0000
committer Thomas Gleixner <[EMAIL PROTECTED]> Mon, 23 May 2005 12:59:33 +0200

[MTD] NAND nandsim: Use NAND_SKIP_BBT option

Use the new NAND_SKIP_BBT option instead of defining a fake scan_bbt
handler.

Signed-off-by: Artem B. Bityuckiy <[EMAIL PROTECTED]>
Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>

 drivers/mtd/nand/nandsim.c |   41 ++++++++++++-----------------------------
 1 files changed, 12 insertions(+), 29 deletions(-)

diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c
--- a/drivers/mtd/nand/nandsim.c
+++ b/drivers/mtd/nand/nandsim.c
@@ -22,7 +22,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
  *
- * $Id: nandsim.c,v 1.7 2004/12/06 11:53:06 dedekind Exp $
+ * $Id: nandsim.c,v 1.8 2005/03/19 15:33:56 dedekind Exp $
  */
 
 #include <linux/config.h>
@@ -1484,33 +1484,6 @@ ns_nand_verify_buf(struct mtd_info *mtd,
 }
 
 /*
- * Having only NAND chip IDs we call nand_scan which detects NAND flash
- * parameters and then calls scan_bbt in order to scan/find/build the
- * NAND flash bad block table. But since at that moment the NAND flash
- * image isn't allocated in the simulator, errors arise. To avoid this
- * we redefine the scan_bbt callback and initialize the nandsim structure
- * before the flash media scanning.
- */
-int ns_scan_bbt(struct mtd_info *mtd)
-{ 
-       struct nand_chip *chip = (struct nand_chip *)mtd->priv;
-       struct nandsim   *ns   = (struct nandsim *)(chip->priv);
-       int retval;
-
-       if (!NS_IS_INITIALIZED(ns))
-               if ((retval = init_nandsim(mtd)) != 0) {
-                       NS_ERR("scan_bbt: can't initialize the nandsim 
structure\n");
-                       return retval;
-               }
-       if ((retval = nand_default_bbt(mtd)) != 0) {
-               free_nandsim(ns);
-               return retval;
-       }
-
-       return 0;
-}
-
-/*
  * Module initialization function
  */
 int __init ns_init_module(void)
@@ -1544,7 +1517,6 @@ int __init ns_init_module(void)
        chip->hwcontrol  = ns_hwcontrol;
        chip->read_byte  = ns_nand_read_byte;
        chip->dev_ready  = ns_device_ready;
-       chip->scan_bbt   = ns_scan_bbt;
        chip->write_byte = ns_nand_write_byte;
        chip->write_buf  = ns_nand_write_buf;
        chip->read_buf   = ns_nand_read_buf;
@@ -1552,6 +1524,7 @@ int __init ns_init_module(void)
        chip->write_word = ns_nand_write_word;
        chip->read_word  = ns_nand_read_word;
        chip->eccmode    = NAND_ECC_SOFT;
+       chip->options   |= NAND_SKIP_BBTSCAN;
 
        /* 
         * Perform minimum nandsim structure initialization to handle
@@ -1580,6 +1553,16 @@ int __init ns_init_module(void)
                goto error;
        }
 
+       if ((retval = init_nandsim(nsmtd)) != 0) {
+               NS_ERR("scan_bbt: can't initialize the nandsim structure\n");
+               goto error;
+       }
+       
+       if ((retval = nand_default_bbt(nsmtd)) != 0) {
+               free_nandsim(nand);
+               goto error;
+       }
+
        /* Register NAND as one big partition */
        add_mtd_partitions(nsmtd, &nand->part, 1);
 
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to