diff options
| -rw-r--r-- | drivers/mtd/nand/nand_base.c | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 3cb92c19c..52f8575aa 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -2461,20 +2461,24 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd,  	/* check version */  	val = le16_to_cpu(p->revision); -	if (val == 1 || val > (1 << 4)) { -		printk(KERN_INFO "%s: unsupported ONFI " -					"version: %d\n", __func__, val); -		return 0; -	} - -	if (val & (1 << 4)) +	if (val & (1 << 5)) +		chip->onfi_version = 23; +	else if (val & (1 << 4))  		chip->onfi_version = 22;  	else if (val & (1 << 3))  		chip->onfi_version = 21;  	else if (val & (1 << 2))  		chip->onfi_version = 20; -	else +	else if (val & (1 << 1))  		chip->onfi_version = 10; +	else +		chip->onfi_version = 0; + +	if (!chip->onfi_version) { +		printk(KERN_INFO "%s: unsupported ONFI " +					"version: %d\n", __func__, val); +		return 0; +	}  	if (!mtd->name)  		mtd->name = p->model; |