Commit 0b4773fd authored by Boris Brezillon's avatar Boris Brezillon

mtd: nand: Drop unused cached programming support

Cached programming is always skipped, so drop the associated code until
we decide to really support it.
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
parent 6e532afa
...@@ -2724,7 +2724,7 @@ static int nand_write_page_syndrome(struct mtd_info *mtd, ...@@ -2724,7 +2724,7 @@ static int nand_write_page_syndrome(struct mtd_info *mtd,
*/ */
static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip, static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip,
uint32_t offset, int data_len, const uint8_t *buf, uint32_t offset, int data_len, const uint8_t *buf,
int oob_required, int page, int cached, int raw) int oob_required, int page, int raw)
{ {
int status, subpage; int status, subpage;
...@@ -2750,31 +2750,19 @@ static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip, ...@@ -2750,31 +2750,19 @@ static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip,
if (status < 0) if (status < 0)
return status; return status;
if (nand_standard_page_accessors(&chip->ecc))
chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1);
status = chip->waitfunc(mtd, chip);
/* /*
* Cached progamming disabled for now. Not sure if it's worth the * See if operation failed and additional status checks are
* trouble. The speed gain is not very impressive. (2.3->2.6Mib/s). * available.
*/ */
cached = 0; if ((status & NAND_STATUS_FAIL) && (chip->errstat))
status = chip->errstat(mtd, chip, FL_WRITING, status,
if (!cached || !NAND_HAS_CACHEPROG(chip)) { page);
if (nand_standard_page_accessors(&chip->ecc))
chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1);
status = chip->waitfunc(mtd, chip);
/*
* See if operation failed and additional status checks are
* available.
*/
if ((status & NAND_STATUS_FAIL) && (chip->errstat))
status = chip->errstat(mtd, chip, FL_WRITING, status,
page);
if (status & NAND_STATUS_FAIL) if (status & NAND_STATUS_FAIL)
return -EIO; return -EIO;
} else {
chip->cmdfunc(mtd, NAND_CMD_CACHEDPROG, -1, -1);
status = chip->waitfunc(mtd, chip);
}
return 0; return 0;
} }
...@@ -2881,7 +2869,6 @@ static int nand_do_write_ops(struct mtd_info *mtd, loff_t to, ...@@ -2881,7 +2869,6 @@ static int nand_do_write_ops(struct mtd_info *mtd, loff_t to,
while (1) { while (1) {
int bytes = mtd->writesize; int bytes = mtd->writesize;
int cached = writelen > bytes && page != blockmask;
uint8_t *wbuf = buf; uint8_t *wbuf = buf;
int use_bufpoi; int use_bufpoi;
int part_pagewr = (column || writelen < mtd->writesize); int part_pagewr = (column || writelen < mtd->writesize);
...@@ -2899,7 +2886,6 @@ static int nand_do_write_ops(struct mtd_info *mtd, loff_t to, ...@@ -2899,7 +2886,6 @@ static int nand_do_write_ops(struct mtd_info *mtd, loff_t to,
if (use_bufpoi) { if (use_bufpoi) {
pr_debug("%s: using write bounce buffer for buf@%p\n", pr_debug("%s: using write bounce buffer for buf@%p\n",
__func__, buf); __func__, buf);
cached = 0;
if (part_pagewr) if (part_pagewr)
bytes = min_t(int, bytes - column, writelen); bytes = min_t(int, bytes - column, writelen);
chip->pagebuf = -1; chip->pagebuf = -1;
...@@ -2918,7 +2904,7 @@ static int nand_do_write_ops(struct mtd_info *mtd, loff_t to, ...@@ -2918,7 +2904,7 @@ static int nand_do_write_ops(struct mtd_info *mtd, loff_t to,
} }
ret = nand_write_page(mtd, chip, column, bytes, wbuf, ret = nand_write_page(mtd, chip, column, bytes, wbuf,
oob_required, page, cached, oob_required, page,
(ops->mode == MTD_OPS_RAW)); (ops->mode == MTD_OPS_RAW));
if (ret) if (ret)
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment