[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <3478818.ZVgDgJjmfN@mistral>
Date: Mon, 04 Nov 2013 10:43:59 -0800
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 #3: anyone interested in making sdhci_irq a bit faster?]
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