From: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
To: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
Sebastian Heutling
<heutling-U9zb0o/1OQCELgA04lAiVw@public.gmane.org>
Subject: Re: [PATCH 1/1] spi: Fix "not ready" timeout after write in at25
Date: Thu, 2 Jul 2009 18:48:36 -0700 [thread overview]
Message-ID: <200907021848.36757.david-b@pacbell.net> (raw)
In-Reply-To: <4A2CE07F.2060302-U9zb0o/1OQCELgA04lAiVw@public.gmane.org>
On Monday 08 June 2009, Sebastian Heutling wrote:
> Under certain circumstances msleep(1) within the loop, which waits
> for the EEPROM to be finished, might take longer than the timeout.
> On the next loop the status register might return to be ready and
> therefore the loop finishes. The following check now tests if
> a timeout occurred and if so returns an error although the device
> reported to be finished.
> This fix replaces testing the occurrence of the timeout by testing
> the "not ready" bit in the status register.
> The patch is against 2.6.29.2.
This got badly mangled by your mailer. Care to re-send?
>
> Signed-off-by: Sebastian Heutling <heutling-U9zb0o/1OQCELgA04lAiVw@public.gmane.org>
>
> ---
> drivers/misc/eeprom/at25.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
> index 290dbe9..ea83604 100644
> --- a/drivers/misc/eeprom/at25.c
> +++ b/drivers/misc/eeprom/at25.c
> @@ -160,6 +160,7 @@ at25_ee_write(struct at25_data *at25, char *buf,
> loff_t off, size_t count)
> bounce[0] = AT25_WRITE;
> mutex_lock(&at25->lock);
> do {
> + int sr;
> unsigned long timeout, retries;
> unsigned segment;
> unsigned offset = (unsigned) off;
> @@ -205,7 +206,6 @@ at25_ee_write(struct at25_data *at25, char *buf,
> loff_t off, size_t count)
> timeout = jiffies + msecs_to_jiffies(EE_TIMEOUT);
> retries = 0;
> do {
> - int sr;
> sr = spi_w8r8(at25->spi, AT25_RDSR);
> if (sr < 0 || (sr & AT25_SR_nRDY)) {
> @@ -219,7 +219,7 @@ at25_ee_write(struct at25_data *at25, char *buf,
> loff_t off, size_t count)
> break;
> } while (retries++ < 3 || time_before_eq(jiffies, timeout));
> - if (time_after(jiffies, timeout)) {
> + if ((sr < 0) || (sr & AT25_SR_nRDY)) {
> dev_err(&at25->spi->dev,
> "write %d bytes offset %d, "
> "timeout after %u msecs\n",
> --
> 1.6.3.2
------------------------------------------------------------------------------
next prev parent reply other threads:[~2009-07-03 1:48 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-08 9:57 [PATCH 1/1] spi: Fix "not ready" timeout after write in at25 Sebastian Heutling
[not found] ` <4A2CE07F.2060302-U9zb0o/1OQCELgA04lAiVw@public.gmane.org>
2009-07-03 1:48 ` David Brownell [this message]
-- strict thread matches above, loose matches on Subject: below --
2009-07-03 7:10 Sebastian Heutling
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=200907021848.36757.david-b@pacbell.net \
--to=david-b-ybekhbn/0ldr7s880joybq@public.gmane.org \
--cc=heutling-U9zb0o/1OQCELgA04lAiVw@public.gmane.org \
--cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.