
HI jagan and ta
I might have a different view, the caller can not get the correct response even though we can not operate the device sucessfully.
I think it is necessary to return a valid value.
if return 0, the device cannot actually be operated but the correct results are not possible
BRs Chao
At 2021-11-06 02:08:04, "Jagan Teki" jagan@amarulasolutions.com wrote:
On Fri, Nov 5, 2021 at 10:47 PM Tudor.Ambarus@microchip.com wrote:
Hi,
On 6/22/21 8:21 AM, chao zeng wrote:
From: Chao Zeng chao.zeng@siemens.com
When operating the write-protection flash,spi_flash_std_write() and spi_flash_std_erase() would return wrong result.The flash is protected, but write or erase the flash would show "OK".
Check the flash write protection state if the write-protection has enbale before operating the flash.
Signed-off-by: Chao Zeng chao.zeng@siemens.com
drivers/mtd/spi/sf_probe.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index 3befbe91ca..f06e6b88bd 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -109,6 +109,11 @@ static int spi_flash_std_write(struct udevice *dev, u32 offset, size_t len, struct mtd_info *mtd = &flash->mtd; size_t retlen;
if (flash->flash_is_locked && flash->flash_is_locked(flash, offset, len)) {
debug("SF: Flash is locked\n");
return -ENOPROTOOPT;
Keep a debug message, but return 0 please. Writes or erases on protected areas are ignored by the flash, we should reflect that in the code.
Agreed this point, Chao are you fine to do this change while applying it?
Jagan.