From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Vitaly Wool <vitalywool@gmail.com>
Cc: drzeus-mmc@drzeus.cx, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] fix random SD/MMC card recognition failures on ARM Versatile
Date: Thu, 23 Nov 2006 19:42:36 +0000 [thread overview]
Message-ID: <20061123194236.GD8984@flint.arm.linux.org.uk> (raw)
In-Reply-To: <acd2a5930611231129v3515022al931bec5b04ce27f@mail.gmail.com>
On Thu, Nov 23, 2006 at 10:29:30PM +0300, Vitaly Wool wrote:
> On 11/23/06, Russell King <rmk+lkml@arm.linux.org.uk> wrote:
> >Doubtful. mmci_stop_data() already does this, which will be called
> >immediately prior to mmci_request_end(). So you're doubling up the
> >writes to registers again.
>
> There's the case (mmci_cmd_irq) where mmc_stop_data is not called
> prior to mmci_request_end(), so it's not that simple.
Ah, I see it. In that case we need to call mmc_stop_data() when
we're ending the initial command due to an error. IOW, like this:
diff --git a/drivers/mmc/mmci.c b/drivers/mmc/mmci.c
index 828503c..5ad0259 100644
--- a/drivers/mmc/mmci.c
+++ b/drivers/mmc/mmci.c
@@ -42,6 +42,8 @@ mmci_request_end(struct mmci_host *host,
{
writel(0, host->base + MMCICOMMAND);
+ BUG_ON(host->data);
+
host->mrq = NULL;
host->cmd = NULL;
@@ -198,6 +200,8 @@ mmci_cmd_irq(struct mmci_host *host, str
}
if (!cmd->data || cmd->error != MMC_ERR_NONE) {
+ if (host->data)
+ mmci_stop_data(host);
mmci_request_end(host, cmd->mrq);
} else if (!(cmd->data->flags & MMC_DATA_READ)) {
mmci_start_data(host, cmd->data);
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
next prev parent reply other threads:[~2006-11-23 19:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-23 15:46 [PATCH] fix random SD/MMC card recognition failures on ARM Versatile Vitaly Wool
2006-11-23 16:03 ` Russell King
2006-11-23 19:29 ` Vitaly Wool
2006-11-23 19:42 ` Russell King [this message]
2006-11-23 19:57 ` Russell King
2006-11-24 7:54 ` Vitaly Wool
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=20061123194236.GD8984@flint.arm.linux.org.uk \
--to=rmk+lkml@arm.linux.org.uk \
--cc=drzeus-mmc@drzeus.cx \
--cc=linux-kernel@vger.kernel.org \
--cc=vitalywool@gmail.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 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.