aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Anderson <dianders@chromium.org>2013-07-09 16:04:40 -0400
committerChris Ball <cjb@laptop.org>2013-08-24 22:21:33 -0400
commit476d79f1427798deb5107ad142cdea7d46883b4a (patch)
treeb76646ddc3ad6218b0506cbd6c2b015cb38c6d4c
parentc8760069627ad3b0dbbea170f0c4c58b16e18d3d (diff)
mmc: dw_mmc: Handle DW_MCI_QUIRK_IDMAC_DTO properly
In (1fb5f68 mmc: dw_mmc: Don't loop when handling an interrupt), the code for handling DW_MCI_QUIRK_IDMAC_DTO became dead code. Move it to where it ought to live. Found by code inspection and compile-tested only--I don't know of any boards that need DW_MCI_QUIRK_IDMAC_DTO. Signed-off-by: Doug Anderson <dianders@chromium.org> Acked-by: Seungwon Jeon <tgih.jun@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r--drivers/mmc/host/dw_mmc.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index ee5f1676f14e..beafb4ce37aa 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1601,18 +1601,17 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id)
1601 1601
1602 pending = mci_readl(host, MINTSTS); /* read-only mask reg */ 1602 pending = mci_readl(host, MINTSTS); /* read-only mask reg */
1603 1603
1604 if (pending) { 1604 /*
1605 1605 * DTO fix - version 2.10a and below, and only if internal DMA
1606 /* 1606 * is configured.
1607 * DTO fix - version 2.10a and below, and only if internal DMA 1607 */
1608 * is configured. 1608 if (host->quirks & DW_MCI_QUIRK_IDMAC_DTO) {
1609 */ 1609 if (!pending &&
1610 if (host->quirks & DW_MCI_QUIRK_IDMAC_DTO) { 1610 ((mci_readl(host, STATUS) >> 17) & 0x1fff))
1611 if (!pending && 1611 pending |= SDMMC_INT_DATA_OVER;
1612 ((mci_readl(host, STATUS) >> 17) & 0x1fff)) 1612 }
1613 pending |= SDMMC_INT_DATA_OVER;
1614 }
1615 1613
1614 if (pending) {
1616 if (pending & DW_MCI_CMD_ERROR_FLAGS) { 1615 if (pending & DW_MCI_CMD_ERROR_FLAGS) {
1617 mci_writel(host, RINTSTS, DW_MCI_CMD_ERROR_FLAGS); 1616 mci_writel(host, RINTSTS, DW_MCI_CMD_ERROR_FLAGS);
1618 host->cmd_status = pending; 1617 host->cmd_status = pending;