diff options
author | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-27 01:02:13 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-27 01:02:13 +0200 |
commit | ba0251fe87ea560eb377917e06ba0b5b9ab89094 (patch) | |
tree | 9f01452bb883ddcbd2ef1047638f9aeefeb4c89f /drivers/mtd/nand | |
parent | cca3b837bbb4c984165f9f9c7c06846bc0425791 (diff) | |
download | op-kernel-dev-ba0251fe87ea560eb377917e06ba0b5b9ab89094.zip op-kernel-dev-ba0251fe87ea560eb377917e06ba0b5b9ab89094.tar.gz |
[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@linutronix.de>
Diffstat (limited to 'drivers/mtd/nand')
-rw-r--r-- | 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_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 */ |