diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/nand/nand_base.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/drivers/nand/nand_base.c b/drivers/nand/nand_base.c index c531ef8e799..193aa8a9075 100644 --- a/drivers/nand/nand_base.c +++ b/drivers/nand/nand_base.c @@ -2354,18 +2354,21 @@ int nand_scan (struct mtd_info *mtd, int maxchips) busw = nand_flash_ids[i].options & NAND_BUSWIDTH_16; } + /* Try to identify manufacturer */ + for (j = 0; nand_manuf_ids[j].id != 0x0; j++) { + if (nand_manuf_ids[j].id == nand_maf_id) + break; + } + /* Check, if buswidth is correct. Hardware drivers should set * this correct ! */ - printk (KERN_INFO "NAND device: Manufacturer ID:" - " 0x%02x, Chip ID: 0x%02x (%s %s)\n", nand_maf_id, nand_dev_id, - nand_manuf_ids[i].name , mtd->name); - printk(KERN_INFO "NAND: Pagesize: %u, Blocksize: %uK, OOBsize: %u\n", - mtd->oobblock, mtd->erasesize/1024, mtd->oobsize); - if (busw != (this->options & NAND_BUSWIDTH_16)) { -/* printk (KERN_WARNING */ -/* "NAND bus width %d instead %d bit\n", */ -/* (this->options & NAND_BUSWIDTH_16) ? 16 : 8, */ -/* busw ? 16 : 8); */ + if (busw == (this->options & NAND_BUSWIDTH_16)) { + printk (KERN_INFO "NAND device: Manufacturer ID:" + " 0x%02x, Chip ID: 0x%02x (%s %s)\n", nand_maf_id, nand_dev_id, + nand_manuf_ids[j].name , mtd->name); + printk(KERN_INFO "NAND: Pagesize: %u, Blocksize: %uK, OOBsize: %u\n", + mtd->oobblock, mtd->erasesize/1024, mtd->oobsize); + } else { this->select_chip(mtd, -1); return 1; } |