* [PATCH 1/4] mmci: use StartBitErr to detect bad connections
@ 2011-06-28 7:57 Linus Walleij
2011-07-05 11:16 ` Russell King - ARM Linux
0 siblings, 1 reply; 3+ messages in thread
From: Linus Walleij @ 2011-06-28 7:57 UTC (permalink / raw)
To: linux-arm-kernel
From: Ulf Hansson <ulf.hansson@stericsson.com>
Stresstesting insert/remove of SD-cards can trigger
a StartBitErr. This made the driver to hang in forever
waiting for a non ocurring data timeout.
This bit and interrupt is documented in the original
PL180 TRM, just never implemented until now.
Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com>
Reviewed-by: Linus Walleij <linus.walleij@stericsson.com>
Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/mmc/host/mmci.c | 2 ++
drivers/mmc/host/mmci.h | 5 ++++-
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 7721de9..fe14072 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -582,6 +582,8 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data,
data->error = -EILSEQ;
} else if (status & MCI_DATATIMEOUT) {
data->error = -ETIMEDOUT;
+ } else if (status & MCI_STARTBITERR) {
+ data->error = -ECOMM;
} else if (status & MCI_TXUNDERRUN) {
data->error = -EIO;
} else if (status & MCI_RXOVERRUN) {
diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h
index bb32e21..2164e8c 100644
--- a/drivers/mmc/host/mmci.h
+++ b/drivers/mmc/host/mmci.h
@@ -86,6 +86,7 @@
#define MCI_CMDRESPEND (1 << 6)
#define MCI_CMDSENT (1 << 7)
#define MCI_DATAEND (1 << 8)
+#define MCI_STARTBITERR (1 << 9)
#define MCI_DATABLOCKEND (1 << 10)
#define MCI_CMDACTIVE (1 << 11)
#define MCI_TXACTIVE (1 << 12)
@@ -112,6 +113,7 @@
#define MCI_CMDRESPENDCLR (1 << 6)
#define MCI_CMDSENTCLR (1 << 7)
#define MCI_DATAENDCLR (1 << 8)
+#define MCI_STARTBITERRCLR (1 << 9)
#define MCI_DATABLOCKENDCLR (1 << 10)
/* Extended status bits for the ST Micro variants */
#define MCI_ST_SDIOITC (1 << 22)
@@ -127,6 +129,7 @@
#define MCI_CMDRESPENDMASK (1 << 6)
#define MCI_CMDSENTMASK (1 << 7)
#define MCI_DATAENDMASK (1 << 8)
+#define MCI_STARTBITERRMASK (1 << 9)
#define MCI_DATABLOCKENDMASK (1 << 10)
#define MCI_CMDACTIVEMASK (1 << 11)
#define MCI_TXACTIVEMASK (1 << 12)
@@ -150,7 +153,7 @@
#define MCI_IRQENABLE \
(MCI_CMDCRCFAILMASK|MCI_DATACRCFAILMASK|MCI_CMDTIMEOUTMASK| \
MCI_DATATIMEOUTMASK|MCI_TXUNDERRUNMASK|MCI_RXOVERRUNMASK| \
- MCI_CMDRESPENDMASK|MCI_CMDSENTMASK)
+ MCI_CMDRESPENDMASK|MCI_CMDSENTMASK|MCI_STARTBITERRMASK)
/* These interrupts are directed to IRQ1 when two IRQ lines are available */
#define MCI_IRQ1MASK \
--
1.7.3.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 1/4] mmci: use StartBitErr to detect bad connections
2011-06-28 7:57 [PATCH 1/4] mmci: use StartBitErr to detect bad connections Linus Walleij
@ 2011-07-05 11:16 ` Russell King - ARM Linux
2011-07-06 19:45 ` Russell King - ARM Linux
0 siblings, 1 reply; 3+ messages in thread
From: Russell King - ARM Linux @ 2011-07-05 11:16 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Jun 28, 2011 at 09:57:25AM +0200, Linus Walleij wrote:
> Stresstesting insert/remove of SD-cards can trigger
> a StartBitErr. This made the driver to hang in forever
> waiting for a non ocurring data timeout.
>
> This bit and interrupt is documented in the original
> PL180 TRM, just never implemented until now.
>
> Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com>
> Reviewed-by: Linus Walleij <linus.walleij@stericsson.com>
> Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/4] mmci: use StartBitErr to detect bad connections
2011-07-05 11:16 ` Russell King - ARM Linux
@ 2011-07-06 19:45 ` Russell King - ARM Linux
0 siblings, 0 replies; 3+ messages in thread
From: Russell King - ARM Linux @ 2011-07-06 19:45 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Jul 05, 2011 at 12:16:11PM +0100, Russell King - ARM Linux wrote:
> On Tue, Jun 28, 2011 at 09:57:25AM +0200, Linus Walleij wrote:
> > Stresstesting insert/remove of SD-cards can trigger
> > a StartBitErr. This made the driver to hang in forever
> > waiting for a non ocurring data timeout.
> >
> > This bit and interrupt is documented in the original
> > PL180 TRM, just never implemented until now.
> >
> > Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com>
> > Reviewed-by: Linus Walleij <linus.walleij@stericsson.com>
> > Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com>
> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
>
> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ok, I've taken this into my fixes branch.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-07-06 19:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-28 7:57 [PATCH 1/4] mmci: use StartBitErr to detect bad connections Linus Walleij
2011-07-05 11:16 ` Russell King - ARM Linux
2011-07-06 19:45 ` Russell King - ARM Linux
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).