mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 07:34:31 +00:00
Don't panic if a controller driver does ecc its own way.
Some hardware, such as the enhanced local bus controller used on some mpc83xx chips, does ecc transparently when reading and writing data, rather than providing a generic calculate/correct mechanism that can be exported to the nand subsystem. The subsystem should not BUG() when calculate, correct, or hwctl are missing, if the methods that call them have been overridden. Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
parent
e52b34d40a
commit
41ef8c716e
1 changed files with 6 additions and 2 deletions
|
@ -2595,8 +2595,12 @@ int nand_scan_tail(struct mtd_info *mtd)
|
||||||
chip->ecc.write_oob = nand_write_oob_std;
|
chip->ecc.write_oob = nand_write_oob_std;
|
||||||
|
|
||||||
case NAND_ECC_HW_SYNDROME:
|
case NAND_ECC_HW_SYNDROME:
|
||||||
if (!chip->ecc.calculate || !chip->ecc.correct ||
|
if ((!chip->ecc.calculate || !chip->ecc.correct ||
|
||||||
!chip->ecc.hwctl) {
|
!chip->ecc.hwctl) &&
|
||||||
|
(!chip->ecc.read_page ||
|
||||||
|
chip->ecc.read_page == nand_read_page_hwecc ||
|
||||||
|
!chip->ecc.write_page ||
|
||||||
|
chip->ecc.write_page == nand_write_page_hwecc)) {
|
||||||
printk(KERN_WARNING "No ECC functions supplied, "
|
printk(KERN_WARNING "No ECC functions supplied, "
|
||||||
"Hardware ECC not possible\n");
|
"Hardware ECC not possible\n");
|
||||||
BUG();
|
BUG();
|
||||||
|
|
Loading…
Reference in a new issue