From 6778948f9de86c3cfaf36725a7c87dcff9ba247f Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 11 Dec 2023 08:20:59 +0000 Subject: [PATCH] kernel_5.10 no rt --- kernel/drivers/mtd/nand/spi/core.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/kernel/drivers/mtd/nand/spi/core.c b/kernel/drivers/mtd/nand/spi/core.c index bd18e6d..f783f2c 100644 --- a/kernel/drivers/mtd/nand/spi/core.c +++ b/kernel/drivers/mtd/nand/spi/core.c @@ -527,7 +527,7 @@ const struct nand_page_io_req *req, bool ecc_enabled) { - u8 status; + u8 status = 0; int ret; ret = spinand_load_page_op(spinand, req); @@ -535,6 +535,13 @@ return ret; ret = spinand_wait(spinand, &status); + /* + * When there is data outside of OIP in the status, the status data is + * inaccurate and needs to be reconfirmed + */ + if (spinand->id.data[0] == 0x01 && status && !ret) + ret = spinand_wait(spinand, &status); + if (ret < 0) return ret; @@ -1111,6 +1118,13 @@ if (ret) return ret; + /* HWP_EN must be enabled first before block unlock region is set */ + if (spinand->id.data[0] == 0x01) { + ret = spinand_lock_block(spinand, HWP_EN); + if (ret) + return ret; + } + ret = spinand_lock_block(spinand, BL_ALL_UNLOCKED); if (ret) return ret; -- Gitblit v1.6.2