]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/altera_qspi.c
altera_qspi: set fail_addr for erase ops
[u-boot] / drivers / mtd / altera_qspi.c
index 617bf5d72de36b8f8353c8791e3d16ce9da1b917..b0d4f2c810232d9f9b733c92ddb16e0f81085146 100644 (file)
@@ -81,6 +81,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)
        int ret;
 
        memset(&instr, 0, sizeof(instr));
+       instr.mtd = mtd;
        instr.addr = mtd->erasesize * s_first;
        instr.len = mtd->erasesize * (s_last + 1 - s_first);
        ret = mtd_erase(mtd, &instr);
@@ -144,7 +145,9 @@ static int altera_qspi_erase(struct mtd_info *mtd, struct erase_info *instr)
                        /* erase failed, sector might be protected */
                        debug("erase %08x fail %x\n", sect, stat);
                        writel(stat, &regs->isr); /* clear isr */
+                       instr->fail_addr = addr;
                        instr->state = MTD_ERASE_FAILED;
+                       mtd_erase_callback(instr);
                        return -EIO;
                }
                addr += mtd->erasesize;