summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand/nand_denali.c
diff options
context:
space:
mode:
authorSteffen Trumtrar <s.trumtrar@pengutronix.de>2016-09-22 16:46:37 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2016-09-26 08:03:34 +0200
commitacc6cc82a190f1577e71164a4d10422e5d216ffb (patch)
tree5da57d7e174d669f2486fde3bcb9ba783eae39b6 /drivers/mtd/nand/nand_denali.c
parentc42e8262c827d267be9529da1373efeaf535ec6b (diff)
downloadbarebox-acc6cc82a190f1577e71164a4d10422e5d216ffb.tar.gz
barebox-acc6cc82a190f1577e71164a4d10422e5d216ffb.tar.xz
nand: denali: use correct interrupts in read_page
The interrupt mask is incorrect in case of HW error correction. The driver will time out waiting for the wrong interrupts. Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mtd/nand/nand_denali.c')
-rw-r--r--drivers/mtd/nand/nand_denali.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/mtd/nand/nand_denali.c b/drivers/mtd/nand/nand_denali.c
index bf9a05d852..ceb5a8b87e 100644
--- a/drivers/mtd/nand/nand_denali.c
+++ b/drivers/mtd/nand/nand_denali.c
@@ -1102,8 +1102,9 @@ static int denali_read_page(struct mtd_info *mtd, struct nand_chip *chip,
size_t size = denali->mtd.writesize + denali->mtd.oobsize;
uint32_t irq_status;
- uint32_t irq_mask = INTR_STATUS__ECC_TRANSACTION_DONE |
- INTR_STATUS__ECC_ERR;
+ uint32_t irq_mask = denali->have_hw_ecc_fixup ?
+ (INTR_STATUS__DMA_CMD_COMP) :
+ (INTR_STATUS__ECC_TRANSACTION_DONE | INTR_STATUS__ECC_ERR);
bool check_erased_page = false;
if (page != denali->page) {