From: Brian Norris <computersforpeace@gmail.com>
To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Cc: linux-mtd@lists.infradead.org,
Gregory Clement <gregory.clement@free-electrons.com>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Stas Sergeev <stsp@list.ru>
Subject: Re: [PATCH v2] mtd: spi-nor: wait until lock/unlock operations are ready
Date: Wed, 6 Jan 2016 17:20:36 -0800 [thread overview]
Message-ID: <20160107012036.GU109450@google.com> (raw)
In-Reply-To: <1451336091-8210-1-git-send-email-ezequiel@vanguardiasur.com.ar>
On Mon, Dec 28, 2015 at 05:54:51PM -0300, Ezequiel Garcia wrote:
> On Micron and Numonyx devices, the status register write command
> (WRSR), raises a work-in-progress bit (WIP) on the status register.
> The datasheets for these devices specify that while the status
> register write is in progress, the status register WIP bit can still
> be read to check the end of the operation.
>
> This commit adds a wait_till_ready call on lock/unlock operations,
> only for these manufacturers. This is needed to prevent applications
Edited the above sentence, since you're not doing this "only for these
manufacturers"; you're doing it for all that support lock/unlock.
Instead, it'll read:
"This commit adds a wait_till_ready call on lock/unlock operations,
which is required for Micron and Numonyx but should be harmless for
others."
With that, applied to l2-mtd.git
Brian
> from issuing erase or program operations before the unlock operation
> is completed.
>
> Reported-by: Stas Sergeev <stsp@list.ru>
> Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
> ---
> Changes from v1:
> * Simplify style by tail calling spi_nor_wait_till_ready
>
> drivers/mtd/spi-nor/spi-nor.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index 7e5051e604b0..835a010d9339 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -481,6 +481,7 @@ static int stm_lock(struct spi_nor *nor, loff_t ofs, uint64_t len)
> int status_old, status_new;
> u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
> u8 shift = ffs(mask) - 1, pow, val;
> + int ret;
>
> status_old = read_sr(nor);
> if (status_old < 0)
> @@ -519,7 +520,10 @@ static int stm_lock(struct spi_nor *nor, loff_t ofs, uint64_t len)
> return -EINVAL;
>
> write_enable(nor);
> - return write_sr(nor, status_new);
> + ret = write_sr(nor, status_new);
> + if (ret)
> + return ret;
> + return spi_nor_wait_till_ready(nor);
> }
>
> /*
> @@ -533,6 +537,7 @@ static int stm_unlock(struct spi_nor *nor, loff_t ofs, uint64_t len)
> int status_old, status_new;
> u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
> u8 shift = ffs(mask) - 1, pow, val;
> + int ret;
>
> status_old = read_sr(nor);
> if (status_old < 0)
> @@ -569,7 +574,10 @@ static int stm_unlock(struct spi_nor *nor, loff_t ofs, uint64_t len)
> return -EINVAL;
>
> write_enable(nor);
> - return write_sr(nor, status_new);
> + ret = write_sr(nor, status_new);
> + if (ret)
> + return ret;
> + return spi_nor_wait_till_ready(nor);
> }
>
> /*
> --
> 2.6.4
>
next prev parent reply other threads:[~2016-01-07 1:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-28 20:54 [PATCH v2] mtd: spi-nor: wait until lock/unlock operations are ready Ezequiel Garcia
2016-01-07 1:20 ` Brian Norris [this message]
2016-01-07 12:42 ` Ezequiel Garcia
2016-01-07 17:08 ` Brian Norris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160107012036.GU109450@google.com \
--to=computersforpeace@gmail.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=gregory.clement@free-electrons.com \
--cc=linux-mtd@lists.infradead.org \
--cc=stsp@list.ru \
--cc=thomas.petazzoni@free-electrons.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).