|
@@ -3348,8 +3348,13 @@ int nand_scan_tail(struct mtd_info *mtd)
|
|
|
if (!chip->ecc.write_oob)
|
|
|
chip->ecc.write_oob = nand_write_oob_syndrome;
|
|
|
|
|
|
- if (mtd->writesize >= chip->ecc.size)
|
|
|
+ if (mtd->writesize >= chip->ecc.size) {
|
|
|
+ if (!chip->ecc.strength) {
|
|
|
+ pr_warn("Driver must set ecc.strength when using hardware ECC\n");
|
|
|
+ BUG();
|
|
|
+ }
|
|
|
break;
|
|
|
+ }
|
|
|
pr_warn("%d byte HW ECC not possible on "
|
|
|
"%d byte page size, fallback to SW ECC\n",
|
|
|
chip->ecc.size, mtd->writesize);
|
|
@@ -3404,7 +3409,7 @@ int nand_scan_tail(struct mtd_info *mtd)
|
|
|
BUG();
|
|
|
}
|
|
|
chip->ecc.strength =
|
|
|
- chip->ecc.bytes*8 / fls(8*chip->ecc.size);
|
|
|
+ chip->ecc.bytes * 8 / fls(8 * chip->ecc.size);
|
|
|
break;
|
|
|
|
|
|
case NAND_ECC_NONE:
|