|
@@ -2981,9 +2981,11 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, struct nand_chip *chip,
|
|
|
mtd->oobsize = le16_to_cpu(p->spare_bytes_per_page);
|
|
|
chip->chipsize = le32_to_cpu(p->blocks_per_lun);
|
|
|
chip->chipsize *= (uint64_t)mtd->erasesize * p->lun_count;
|
|
|
- *busw = 0;
|
|
|
- if (le16_to_cpu(p->features) & 1)
|
|
|
+
|
|
|
+ if (onfi_feature(chip) & ONFI_FEATURE_16_BIT_BUS)
|
|
|
*busw = NAND_BUSWIDTH_16;
|
|
|
+ else
|
|
|
+ *busw = 0;
|
|
|
|
|
|
if (p->ecc_bits != 0xff) {
|
|
|
chip->ecc_strength_ds = p->ecc_bits;
|