diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mtd/nand/nand_base.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 8718eaf8269f..9f5d339a3610 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c | |||
@@ -3348,8 +3348,13 @@ int nand_scan_tail(struct mtd_info *mtd) | |||
3348 | if (!chip->ecc.write_oob) | 3348 | if (!chip->ecc.write_oob) |
3349 | chip->ecc.write_oob = nand_write_oob_syndrome; | 3349 | chip->ecc.write_oob = nand_write_oob_syndrome; |
3350 | 3350 | ||
3351 | if (mtd->writesize >= chip->ecc.size) | 3351 | if (mtd->writesize >= chip->ecc.size) { |
3352 | if (!chip->ecc.strength) { | ||
3353 | pr_warn("Driver must set ecc.strength when using hardware ECC\n"); | ||
3354 | BUG(); | ||
3355 | } | ||
3352 | break; | 3356 | break; |
3357 | } | ||
3353 | pr_warn("%d byte HW ECC not possible on " | 3358 | pr_warn("%d byte HW ECC not possible on " |
3354 | "%d byte page size, fallback to SW ECC\n", | 3359 | "%d byte page size, fallback to SW ECC\n", |
3355 | chip->ecc.size, mtd->writesize); | 3360 | chip->ecc.size, mtd->writesize); |
@@ -3404,7 +3409,7 @@ int nand_scan_tail(struct mtd_info *mtd) | |||
3404 | BUG(); | 3409 | BUG(); |
3405 | } | 3410 | } |
3406 | chip->ecc.strength = | 3411 | chip->ecc.strength = |
3407 | chip->ecc.bytes*8 / fls(8*chip->ecc.size); | 3412 | chip->ecc.bytes * 8 / fls(8 * chip->ecc.size); |
3408 | break; | 3413 | break; |
3409 | 3414 | ||
3410 | case NAND_ECC_NONE: | 3415 | case NAND_ECC_NONE: |