mmc: dw_mmc: Handle DW_MCI_QUIRK_IDMAC_DTO properly
authorDoug Anderson <dianders@chromium.org>
Tue, 9 Jul 2013 20:04:40 +0000 (13:04 -0700)
committerChris Ball <cjb@laptop.org>
Sun, 25 Aug 2013 02:21:33 +0000 (22:21 -0400)
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>
drivers/mmc/host/dw_mmc.c

index ee5f167..beafb4c 100644 (file)
@@ -1601,18 +1601,17 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id)
 
        pending = mci_readl(host, MINTSTS); /* read-only mask reg */
 
-       if (pending) {
-
-               /*
-                * DTO fix - version 2.10a and below, and only if internal DMA
-                * is configured.
-                */
-               if (host->quirks & DW_MCI_QUIRK_IDMAC_DTO) {
-                       if (!pending &&
-                           ((mci_readl(host, STATUS) >> 17) & 0x1fff))
-                               pending |= SDMMC_INT_DATA_OVER;
-               }
+       /*
+        * DTO fix - version 2.10a and below, and only if internal DMA
+        * is configured.
+        */
+       if (host->quirks & DW_MCI_QUIRK_IDMAC_DTO) {
+               if (!pending &&
+                   ((mci_readl(host, STATUS) >> 17) & 0x1fff))
+                       pending |= SDMMC_INT_DATA_OVER;
+       }
 
+       if (pending) {
                if (pending & DW_MCI_CMD_ERROR_FLAGS) {
                        mci_writel(host, RINTSTS, DW_MCI_CMD_ERROR_FLAGS);
                        host->cmd_status = pending;