]> err.no Git - linux-2.6/commitdiff
[MTD] NAND Consolidate references and add back default name setting
authorThomas Gleixner <tglx@cruncher.tec.linutronix.de>
Fri, 26 May 2006 23:02:13 +0000 (01:02 +0200)
committerThomas Gleixner <tglx@cruncher.tec.linutronix.de>
Fri, 26 May 2006 23:02:13 +0000 (01:02 +0200)
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@linutronix.de>
drivers/mtd/nand/nand_base.c

index 0c8da8fab89d4063ee0f3b87c1d2bd4382335564..023224dd12eb56c7f01b054e9bd545aea3c653a0 100644 (file)
@@ -1954,10 +1954,13 @@ static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
        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_flash_type(struct mtd_info *mtd,
                /*
                 * 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_flash_type(struct mtd_info *mtd,
 
        /* 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_flash_type(struct mtd_info *mtd,
        /* 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 */