ARM: 7214/1: mmc: mmci: Fixup handling of MCI_STARTBITERR
The interrupt was previously enabled and then correctly cleared. Now we also handle it correctly. Cc: <stable@vger.kernel.org> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
55b02d2f44
commit
b63038d6f4
1 changed files with 5 additions and 3 deletions
|
@ -675,7 +675,8 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data,
|
||||||
unsigned int status)
|
unsigned int status)
|
||||||
{
|
{
|
||||||
/* First check for errors */
|
/* First check for errors */
|
||||||
if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_TXUNDERRUN|MCI_RXOVERRUN)) {
|
if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_STARTBITERR|
|
||||||
|
MCI_TXUNDERRUN|MCI_RXOVERRUN)) {
|
||||||
u32 remain, success;
|
u32 remain, success;
|
||||||
|
|
||||||
/* Terminate the DMA transfer */
|
/* Terminate the DMA transfer */
|
||||||
|
@ -955,8 +956,9 @@ static irqreturn_t mmci_irq(int irq, void *dev_id)
|
||||||
dev_dbg(mmc_dev(host->mmc), "irq0 (data+cmd) %08x\n", status);
|
dev_dbg(mmc_dev(host->mmc), "irq0 (data+cmd) %08x\n", status);
|
||||||
|
|
||||||
data = host->data;
|
data = host->data;
|
||||||
if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_TXUNDERRUN|
|
if (status & (MCI_DATACRCFAIL|MCI_DATATIMEOUT|MCI_STARTBITERR|
|
||||||
MCI_RXOVERRUN|MCI_DATAEND|MCI_DATABLOCKEND) && data)
|
MCI_TXUNDERRUN|MCI_RXOVERRUN|MCI_DATAEND|
|
||||||
|
MCI_DATABLOCKEND) && data)
|
||||||
mmci_data_irq(host, data, status);
|
mmci_data_irq(host, data, status);
|
||||||
|
|
||||||
cmd = host->cmd;
|
cmd = host->cmd;
|
||||||
|
|
Loading…
Add table
Reference in a new issue