[PATCH] mtd: spi-nor: use _lock_and_prep() in _read_sfdp()
Vignesh R
vigneshr at ti.com
Fri Dec 22 02:14:45 PST 2017
Hi,
On Friday 22 December 2017 02:05 PM, Yogesh Gaur wrote:
> spi_nor_read_sfdp() calls nor->read() to read the SFDP data.
> But first needs to call nor->prepare() to prepare the READ command before
> calling nor->read().
>
> Patch adds call to spi_nor_lock_and_prep() to prepare the READ command
> and add subsequent call to spi_nor_unlock_and_unprep() to release lock
> and call nor->unprepare().
>
Can spi_nor_read() be used here instead then?
> Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur at nxp.com>
> ---
> drivers/mtd/spi-nor/spi-nor.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index 2203d6ef..9fb85ae 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -1807,6 +1807,10 @@ static int spi_nor_read_sfdp(struct spi_nor *nor, u32 addr,
> nor->addr_width = 3;
> nor->read_dummy = 8;
>
> + ret = spi_nor_lock_and_prep(nor, SPI_NOR_OPS_READ);
> + if (ret)
> + goto lock_err;
> +
> while (len) {
> ret = nor->read(nor, addr, len, (u8 *)buf);
> if (!ret || ret > len) {
> @@ -1822,6 +1826,8 @@ static int spi_nor_read_sfdp(struct spi_nor *nor, u32 addr,
> }
> ret = 0;
>
> + spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ);
> +lock_err:
> read_err:
> nor->read_opcode = read_opcode;
> nor->addr_width = addr_width;
>
--
Regards
Vignesh
More information about the linux-mtd
mailing list