From 8174fc9dbd5f1372c7ba6e3ab9485b364f6410fc Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 29 Oct 2020 11:22:46 +0100 Subject: mtd: Drop asynchronous erase support asynchronous erase support is unused and also dropped from the Kernel, so remove it from barebox. Signed-off-by: Sascha Hauer --- drivers/mtd/core.c | 6 ++---- drivers/mtd/devices/docg3.c | 4 ---- drivers/mtd/devices/mtd_dataflash.c | 4 ---- drivers/mtd/devices/mtdram.c | 2 -- drivers/mtd/mtdconcat.c | 4 +--- drivers/mtd/nand/nand_base.c | 19 +++++-------------- drivers/mtd/nor/cfi_flash.c | 7 +------ drivers/mtd/spi-nor/spi-nor.c | 4 ---- 8 files changed, 9 insertions(+), 41 deletions(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/core.c b/drivers/mtd/core.c index 1625d938ea..13f3d61f00 100644 --- a/drivers/mtd/core.c +++ b/drivers/mtd/core.c @@ -422,11 +422,9 @@ int mtd_erase(struct mtd_info *mtd, struct erase_info *instr) if (!(mtd->flags & MTD_WRITEABLE)) return -EROFS; instr->fail_addr = MTD_FAIL_ADDR_UNKNOWN; - if (!instr->len) { - instr->state = MTD_ERASE_DONE; - mtd_erase_callback(instr); + if (!instr->len) return 0; - } + return mtd->erase(mtd, instr); } diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c index a40ba25632..8921086a63 100644 --- a/drivers/mtd/devices/docg3.c +++ b/drivers/mtd/devices/docg3.c @@ -852,7 +852,6 @@ static int doc_erase(struct mtd_info *mtd, struct erase_info *info) doc_dbg("doc_erase(from=%lld, len=%lld\n", info->addr, info->len); doc_set_device_id(docg3, docg3->device_id); - info->state = MTD_ERASE_PENDING; calc_block_sector(info->addr + info->len, &block0, &block1, &page, &ofs, docg3->reliable); ret = -EINVAL; @@ -864,7 +863,6 @@ static int doc_erase(struct mtd_info *mtd, struct erase_info *info) docg3->reliable); doc_set_reliable_mode(docg3); for (len = info->len; !ret && len > 0; len -= mtd->erasesize) { - info->state = MTD_ERASING; ret = doc_erase_block(docg3, block0, block1); block0 += 2; block1 += 2; @@ -873,11 +871,9 @@ static int doc_erase(struct mtd_info *mtd, struct erase_info *info) if (ret) goto reset_err; - info->state = MTD_ERASE_DONE; return 0; reset_err: - info->state = MTD_ERASE_FAILED; return ret; } diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c index 7980a91e19..cd5ab6c972 100644 --- a/drivers/mtd/devices/mtd_dataflash.c +++ b/drivers/mtd/devices/mtd_dataflash.c @@ -213,10 +213,6 @@ static int dataflash_erase(struct mtd_info *mtd, struct erase_info *instr) } } - /* Inform MTD subsystem that erase is complete */ - instr->state = MTD_ERASE_DONE; - mtd_erase_callback(instr); - return 0; } diff --git a/drivers/mtd/devices/mtdram.c b/drivers/mtd/devices/mtdram.c index acaf002258..783e1448d6 100644 --- a/drivers/mtd/devices/mtdram.c +++ b/drivers/mtd/devices/mtdram.c @@ -28,8 +28,6 @@ struct mtdram_priv_data { static int ram_erase(struct mtd_info *mtd, struct erase_info *instr) { memset((char *)mtd->priv + instr->addr, 0xff, instr->len); - instr->state = MTD_ERASE_DONE; - mtd_erase_callback(instr); return 0; } diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c index fa430712d0..d53c4b22e1 100644 --- a/drivers/mtd/mtdconcat.c +++ b/drivers/mtd/mtdconcat.c @@ -383,13 +383,11 @@ static int concat_erase(struct mtd_info *mtd, struct erase_info *instr) erase->addr = 0; offset += subdev->size; } - instr->state = erase->state; + kfree(erase); if (err) return err; - if (instr->callback) - instr->callback(instr); return 0; } diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 3f4c787f49..2b37679d2a 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -952,7 +952,6 @@ int nand_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) if (nand_check_wp(mtd)) { pr_debug("%s: device is write protected!\n", __func__); - status = MTD_ERASE_FAILED; ret = -EIO; goto out; } @@ -2721,15 +2720,13 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr, if (nand_check_wp(mtd)) { pr_debug("%s: device is write protected!\n", __func__); - instr->state = MTD_ERASE_FAILED; + ret = -EIO; goto erase_exit; } /* Loop through the pages */ len = instr->len; - instr->state = MTD_ERASING; - while (len) { /* Check if we have a bad block, we do not erase bad blocks! */ if (!mtd->allow_erasebad && @@ -2737,7 +2734,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr, chip->page_shift, 0, allowbbt)) { pr_warn("%s: attempt to erase a bad block at page 0x%08x\n", __func__, page); - instr->state = MTD_ERASE_FAILED; + ret = -EIO; goto erase_exit; } @@ -2765,7 +2762,7 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr, if (status & NAND_STATUS_FAIL) { pr_debug("%s: failed erase, page 0x%08x\n", __func__, page); - instr->state = MTD_ERASE_FAILED; + ret = -EIO; instr->fail_addr = ((loff_t)page << chip->page_shift); goto erase_exit; @@ -2782,20 +2779,14 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr, chip->select_chip(mtd, chipnr); } } - instr->state = MTD_ERASE_DONE; - -erase_exit: - ret = instr->state == MTD_ERASE_DONE ? 0 : -EIO; + ret = 0; +erase_exit: /* Deselect and wake up anyone waiting on the device */ chip->select_chip(mtd, -1); nand_release_device(mtd); - /* Do call back function */ - if (!ret) - mtd_erase_callback(instr); - /* Return more or less happy */ return ret; } diff --git a/drivers/mtd/nor/cfi_flash.c b/drivers/mtd/nor/cfi_flash.c index 430f926e8c..0988e67347 100644 --- a/drivers/mtd/nor/cfi_flash.c +++ b/drivers/mtd/nor/cfi_flash.c @@ -920,13 +920,8 @@ static int cfi_mtd_erase(struct mtd_info *mtd, struct erase_info *instr) int ret; ret = cfi_erase(info, instr->len, instr->addr); - if (ret) { - instr->state = MTD_ERASE_FAILED; + if (ret) return -EIO; - } - - instr->state = MTD_ERASE_DONE; - mtd_erase_callback(instr); return 0; } diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 5cc4573178..528cd9c399 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -540,14 +540,10 @@ static int spi_nor_erase(struct mtd_info *mtd, struct erase_info *instr) spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_ERASE); - instr->state = MTD_ERASE_DONE; - mtd_erase_callback(instr); - return ret; erase_err: spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_ERASE); - instr->state = MTD_ERASE_FAILED; return ret; } -- cgit v1.2.3