Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a8fd09c authored by Alexey Neyman's avatar Alexey Neyman Committed by Chris Ball
Browse files

mmc: sdhci: Avoid needless loop while handling SDIO interrupts in sdhci_irq



Ignore Card Interrupt bit in the interrupt status if we already
know that mmc_signal_sdio_irq() is going to be called at the end of
sdhci_irq(). This avoids a needless loop in sdhci_irq() repeatedly
reading interrupt status and doing nothing.

Signed-off-by: default avatarAlexey Neyman <stilor@att.net>
Acked-by: default avatarDong Aisheng <b29396@freescale.com>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent 4d223782
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2501,6 +2501,14 @@ again:
	result = IRQ_HANDLED;

	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)
		goto again;
out: