[MTD] NAND Consolidate references and add back default name setting

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Fri May 26 19:59:02 EDT 2006


Commit:     ba0251fe87ea560eb377917e06ba0b5b9ab89094
Parent:     cca3b837bbb4c984165f9f9c7c06846bc0425791
Author:     Thomas Gleixner <tglx at cruncher.tec.linutronix.de>
AuthorDate: Sat May 27 01:02:13 2006 +0200
Commit:     Thomas Gleixner <tglx at cruncher.tec.linutronix.de>
CommitDate: Sat May 27 01:02:13 2006 +0200

    [MTD] NAND Consolidate references and add back default name setting
    
    We have a type pointer. Make use of it instead of the error prone nand_ids[i]
    reference.
    
    The NAND driver used to set default name settings from the chip ID
    string for the device. The feature got lost during the rework. Add it back.
    
    Signed-off-by: Thomas Gleixner <tglx at linutronix.de>

 drivers/mtd/nand/nand_base.c |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 0c8da8f..023224d 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1954,10 +1954,13 @@ static struct nand_flash_dev *nand_get_f
 	if (!type)
 		return ERR_PTR(-ENODEV);
 
-	chip->chipsize = nand_flash_ids[i].chipsize << 20;
+	if (!mtd->name)
+		mtd->name = type->name;
+
+	chip->chipsize = type->chipsize << 20;
 
 	/* Newer devices have all the information in additional id bytes */
-	if (!nand_flash_ids[i].pagesize) {
+	if (!type->pagesize) {
 		int extid;
 		/* The 3rd id byte contains non relevant data ATM */
 		extid = chip->read_byte(mtd);
@@ -1979,10 +1982,10 @@ static struct nand_flash_dev *nand_get_f
 		/*
 		 * Old devices have chip data hardcoded in the device id table
 		 */
-		mtd->erasesize = nand_flash_ids[i].erasesize;
-		mtd->writesize = nand_flash_ids[i].pagesize;
+		mtd->erasesize = type->erasesize;
+		mtd->writesize = type->pagesize;
 		mtd->oobsize = mtd->writesize / 32;
-		busw = nand_flash_ids[i].options & NAND_BUSWIDTH_16;
+		busw = type->options & NAND_BUSWIDTH_16;
 	}
 
 	/* Try to identify manufacturer */
@@ -2020,7 +2023,7 @@ static struct nand_flash_dev *nand_get_f
 
 	/* Get chip options, preserve non chip based options */
 	chip->options &= ~NAND_CHIPOPTIONS_MSK;
-	chip->options |= nand_flash_ids[i].options & NAND_CHIPOPTIONS_MSK;
+	chip->options |= type->options & NAND_CHIPOPTIONS_MSK;
 
 	/*
 	 * Set chip as a default. Board drivers can override it, if necessary
@@ -2030,7 +2033,7 @@ static struct nand_flash_dev *nand_get_f
 	/* Check if chip is a not a samsung device. Do not clear the
 	 * options for chips which are not having an extended id.
 	 */
-	if (*maf_id != NAND_MFR_SAMSUNG && !nand_flash_ids[i].pagesize)
+	if (*maf_id != NAND_MFR_SAMSUNG && !type->pagesize)
 		chip->options &= ~NAND_SAMSUNG_LP_OPTIONS;
 
 	/* Check for AND chips with 4 page planes */



More information about the linux-mtd-cvs mailing list