diff options
author | Herve Codina <Herve.CODINA@celad.com> | 2014-03-03 12:15:29 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-13 13:59:45 +0200 |
commit | 71eec3f820e23c9f2f9f709c49b9661d04d024fb (patch) | |
tree | f5d78b493251fdd4128037a3bb8ac0f09a116b96 | |
parent | 0c6859c7f5b26fc236d301563dd5b3d5945cf557 (diff) | |
download | lwn-71eec3f820e23c9f2f9f709c49b9661d04d024fb.tar.gz lwn-71eec3f820e23c9f2f9f709c49b9661d04d024fb.zip |
mtd: atmel_nand: Disable subpage NAND write when using Atmel PMECC
commit 90445ff6241e2a13445310803e2efa606c61f276 upstream.
Crash detected on sam5d35 and its pmecc nand ecc controller.
The problem was a call to chip->ecc.hwctl from nand_write_subpage_hwecc
(nand_base.c) when we write a sub page.
chip->ecc.hwctl function is not set when we are using PMECC controller.
As a workaround, set NAND_NO_SUBPAGE_WRITE for PMECC controller in
order to disable sub page access in nand_write_page.
Signed-off-by: Herve Codina <Herve.CODINA@celad.com>
Acked-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/mtd/nand/atmel_nand.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c index 2d23d2929438..cc69e415df35 100644 --- a/drivers/mtd/nand/atmel_nand.c +++ b/drivers/mtd/nand/atmel_nand.c @@ -1096,6 +1096,7 @@ static int __init atmel_pmecc_nand_init_params(struct platform_device *pdev, goto err_pmecc_data_alloc; } + nand_chip->options |= NAND_NO_SUBPAGE_WRITE; nand_chip->ecc.read_page = atmel_nand_pmecc_read_page; nand_chip->ecc.write_page = atmel_nand_pmecc_write_page; |