[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2185940.FhsbmfkKLR@mistral>
Date: Wed, 16 Oct 2013 10:51:12 -0700
From: Alexey Neyman <stilor@....net>
To: Chris Ball <cjb@...top.org>, linux-mmc@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Avoid needless loop in sdhci_irq() for Card Interrupt
[Patch ping]
Hi all,
I've discovered that the sdhci_irq() function needlessly iterates re-reading
the interrupt status and doing nothing (until it runs out of max_loops) when
it handles the "Card Interrupt" status in the interrupt status register.
The reason is that the "Card Interrupt" bit is not cleared until the
sdhci_irq() calls mmc_signal_sdio_irq(), so if Card Interrupt was asserted,
re-reading the interrupt status will find this bit set over and over, even if
no other bits are reported.
The fix: ignore Card Interrupt bits in the interrupt status if we already know
that mmc_signal_sdio_irq() is going to be called at the end of sdhci_irq().
Signed-off-by: Alexey Neyman <stilor@....net>
View attachment "sdhci.c.diff" of type "text/x-patch" (689 bytes)
Powered by blists - more mailing lists