2009-03-02 19:56:04

by Pierre Ossman

[permalink] [raw]
Subject: Re: [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD

On Thu, 19 Feb 2009 14:12:38 +0200
Adrian Hunter <[email protected]> wrote:

>
> No it is my mistake. The value is 8 but the unit is 8 clock cycles
> i.e. 64 clock cycles. So my comment was wrong.
>

That was an annoyingly confusing way of writing a spec.

Could you fix up the comment and the if-clause and we'll have this in
for .29.

Thanks
--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
rdesktop, core developer http://www.rdesktop.org

WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.


2009-03-03 11:49:25

by Adrian Hunter

[permalink] [raw]
Subject: Re: [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD

>From 58e858f20149d279368441055d8ba3ae43a1fc6d Mon Sep 17 00:00:00 2001
From: Adrian Hunter <[email protected]>
Date: Tue, 10 Feb 2009 16:32:33 +0200
Subject: [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD

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.

Depending on the characteristics of the controller,
this bug may prevent the use of MMC cards.

Signed-off-by: Adrian Hunter <[email protected]>
---
drivers/mmc/core/mmc_ops.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
index 9c50e6f..34ce270 100644
--- a/drivers/mmc/core/mmc_ops.c
+++ b/drivers/mmc/core/mmc_ops.c
@@ -248,12 +248,15 @@ 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 (opcode == MMC_SEND_CSD || opcode == MMC_SEND_CID) {
+ /*
+ * The spec states that CSR and CID accesses have a timeout
+ * of 64 clock cycles.
+ */
+ data.timeout_ns = 0;
+ data.timeout_clks = 64;
+ } else
+ mmc_set_data_timeout(&data, card);

mmc_wait_for_req(host, &mrq);

--
1.5.6.3

2009-03-08 13:46:37

by Pierre Ossman

[permalink] [raw]
Subject: Re: [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD

On Tue, 03 Mar 2009 13:48:36 +0200
Adrian Hunter <[email protected]> wrote:

> From 58e858f20149d279368441055d8ba3ae43a1fc6d Mon Sep 17 00:00:00 2001
> From: Adrian Hunter <[email protected]>
> Date: Tue, 10 Feb 2009 16:32:33 +0200
> Subject: [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD
>
> 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.
>
> Depending on the characteristics of the controller,
> this bug may prevent the use of MMC cards.
>
> Signed-off-by: Adrian Hunter <[email protected]>
> ---

Queued, thanks.

Rgds
--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
rdesktop, core developer http://www.rdesktop.org

WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.