All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <ext-adrian.hunter@nokia.com>
To: Pierre Ossman <drzeus-mmc@drzeus.cx>
Cc: Matt Fleming <matt@console-pimps.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD
Date: Thu, 19 Feb 2009 09:33:48 +0200	[thread overview]
Message-ID: <499D0B5C.4000005@nokia.com> (raw)
In-Reply-To: <20090218211627.7c16339a@mjolnir.ossman.eu>

ext Pierre Ossman wrote:
> On Wed, 11 Feb 2009 16:49:59 +0200
> Adrian Hunter <ext-adrian.hunter@nokia.com> wrote:
> 
>> Commit 0d3e0460f307e84904968aad6cff97bd688583d8
>> "MMC: CSD and CID timeout values" inadvertently broke
>> the timeout for the MMC command SEND_EXT_CSD.
>>
>> This patch puts it back again.
>>
>> Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
>> ---
>>  drivers/mmc/core/mmc_ops.c |   16 ++++++++++------
>>  1 files changed, 10 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
>> index 9c50e6f..418a270 100644
>> --- a/drivers/mmc/core/mmc_ops.c
>> +++ b/drivers/mmc/core/mmc_ops.c
>> @@ -248,12 +248,16 @@ mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host,
>>
>>       sg_init_one(&sg, data_buf, len);
>>
>> -     /*
>> -      * The spec states that CSR and CID accesses have a timeout
>> -      * of 64 clock cycles.
>> -      */
>> -     data.timeout_ns = 0;
>> -     data.timeout_clks = 64;
>> +     if (!mmc_host_is_spi(host) && opcode == MMC_SEND_EXT_CSD)
>> +             mmc_set_data_timeout(&data, card);
>> +     else {
>> +             /*
>> +              * The spec states that CSR and CID accesses have a timeout
>> +              * of 64 clock cycles (8 for SPI).
>> +              */
>> +             data.timeout_ns = 0;
>> +             data.timeout_clks = 64;
>> +     }
>>
>>       mmc_wait_for_req(host, &mrq);
>>
> 
> I'm confused. Where did the 64 come from in the first place? That
> function will not be called for CID/CSD when !SPI. So the way I see it
> the code should be:
> 
> if ((opcode == MMC_SEND_CSD) || (opcode == (MMC_SEND_CID)) {
>         data.timeout_ns = 0;
>         data.timeout_clks = 8;
> } else {
>         mmc_set_data_timeout(&data, card);
> }

Theoretically yes, it should be 8 not 64 - if all the SPI devices obey
the standard.  As I do not have an SPI device I did not feel comfortable
changing it.  Also 64 clocks is not a long time anyway, so it did not
seem to do any harm.


  reply	other threads:[~2009-02-19  7:20 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-10 15:40 [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD Adrian Hunter
2009-02-11 13:30 ` Matt Fleming
2009-02-11 13:56   ` Adrian Hunter
2009-02-11 14:49     ` Adrian Hunter
2009-02-15 21:46       ` Andrew Morton
2009-02-18 20:16       ` Pierre Ossman
2009-02-19  7:33         ` Adrian Hunter [this message]
2009-02-19 11:22           ` Matt Fleming
2009-02-19 12:12             ` Adrian Hunter
2009-03-02 19:55               ` Pierre Ossman
2009-03-03 11:48                 ` Adrian Hunter
2009-03-08 13:46                   ` Pierre Ossman

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=499D0B5C.4000005@nokia.com \
    --to=ext-adrian.hunter@nokia.com \
    --cc=drzeus-mmc@drzeus.cx \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@console-pimps.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.