From 2f4cfca6fd06d5d25e6277956e84514be787b5c1 Mon Sep 17 00:00:00 2001 From: Francois Ramu Date: Wed, 2 Feb 2022 15:59:59 +0100 Subject: [PATCH] drivers: flash: stm32 qspi flash driver valid read or write operations Like the stm32 flash driver, in case of QSPI nor flash controller the read or write or erase returns '0' if data is of null size. This avoids useless QPSI low level access to the controller. Signed-off-by: Francois Ramu --- drivers/flash/flash_stm32_qspi.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/flash/flash_stm32_qspi.c b/drivers/flash/flash_stm32_qspi.c index 768699e2bc0..3408cb7ae9e 100644 --- a/drivers/flash/flash_stm32_qspi.c +++ b/drivers/flash/flash_stm32_qspi.c @@ -311,6 +311,11 @@ static int flash_stm32_qspi_read(const struct device *dev, off_t addr, return -EINVAL; } + /* read non-zero size */ + if (!size) { + return 0; + } + QSPI_CommandTypeDef cmd = { .Instruction = SPI_NOR_CMD_READ, .Address = addr, @@ -359,6 +364,11 @@ static int flash_stm32_qspi_write(const struct device *dev, off_t addr, return -EINVAL; } + /* write non-zero size */ + if (!size) { + return 0; + } + QSPI_CommandTypeDef cmd_write_en = { .Instruction = SPI_NOR_CMD_WREN, .InstructionMode = QSPI_INSTRUCTION_1_LINE, @@ -429,6 +439,11 @@ static int flash_stm32_qspi_erase(const struct device *dev, off_t addr, return -EINVAL; } + /* erase non-zero size */ + if (!size) { + return 0; + } + QSPI_CommandTypeDef cmd_write_en = { .Instruction = SPI_NOR_CMD_WREN, .InstructionMode = QSPI_INSTRUCTION_1_LINE,