|
@@ -2501,6 +2501,14 @@ again:
|
|
result = IRQ_HANDLED;
|
|
result = IRQ_HANDLED;
|
|
|
|
|
|
intmask = sdhci_readl(host, SDHCI_INT_STATUS);
|
|
intmask = sdhci_readl(host, SDHCI_INT_STATUS);
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * If we know we'll call the driver to signal SDIO IRQ, disregard
|
|
|
|
+ * further indications of Card Interrupt in the status to avoid a
|
|
|
|
+ * needless loop.
|
|
|
|
+ */
|
|
|
|
+ if (cardint)
|
|
|
|
+ intmask &= ~SDHCI_INT_CARD_INT;
|
|
if (intmask && --max_loops)
|
|
if (intmask && --max_loops)
|
|
goto again;
|
|
goto again;
|
|
out:
|
|
out:
|