X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fmtd%2Faltera_qspi.c;h=b0d4f2c810232d9f9b733c92ddb16e0f81085146;hb=a1b1d7eceb033c256ae661d65732323809fb9101;hp=617bf5d72de36b8f8353c8791e3d16ce9da1b917;hpb=25ef4bea59dadbd25dec1dbb376ed84dfc735f02;p=u-boot diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c index 617bf5d72d..b0d4f2c810 100644 --- a/drivers/mtd/altera_qspi.c +++ b/drivers/mtd/altera_qspi.c @@ -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, ®s->isr); /* clear isr */ + instr->fail_addr = addr; instr->state = MTD_ERASE_FAILED; + mtd_erase_callback(instr); return -EIO; } addr += mtd->erasesize;