altera_qspi: allow ctrl-c to abort the erase ops
authorThomas Chou <thomas@wytron.com.tw>
Wed, 23 Dec 2015 13:47:02 +0000 (21:47 +0800)
committerThomas Chou <thomas@wytron.com.tw>
Mon, 28 Dec 2015 01:32:43 +0000 (09:32 +0800)
Allow ctrl-c to abort the erase ops.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
drivers/mtd/altera_qspi.c

index 0624ff4..a9148a7 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <common.h>
+#include <console.h>
 #include <dm.h>
 #include <errno.h>
 #include <fdt_support.h>
@@ -145,6 +146,14 @@ static int altera_qspi_erase(struct mtd_info *mtd, struct erase_info *instr)
        instr->state = MTD_ERASING;
        addr &= ~(mtd->erasesize - 1); /* get lower aligned address */
        while (addr < end) {
+               if (ctrlc()) {
+                       if (flash_verbose)
+                               putc('\n');
+                       instr->fail_addr = MTD_FAIL_ADDR_UNKNOWN;
+                       instr->state = MTD_ERASE_FAILED;
+                       mtd_erase_callback(instr);
+                       return -EIO;
+               }
                flash = pdata->base + addr;
                last = pdata->base + addr + mtd->erasesize;
                /* skip erase if sector is blank */