mmc: sdhci: fix interrupt storm from card detection
authorShawn Guo <shawn.guo@linaro.org>
Tue, 21 Jun 2011 14:41:48 +0000 (22:41 +0800)
committerChris Ball <cjb@laptop.org>
Wed, 20 Jul 2011 21:21:01 +0000 (17:21 -0400)
commitd25928d1eed06a9c23c723466dfa7cbee0a5e07d
tree215f16acf976b8d7df725be06c3f52d6f6da2c9e
parente312eb1e66e4357000e4e7438849d5a5fd738219
mmc: sdhci: fix interrupt storm from card detection

The issue was initially found by Eric Benard as below.

http://permalink.gmane.org/gmane.linux.ports.arm.kernel/108031

Not sure about other SDHCI based controller, but on Freescale eSDHC,
the SDHCI_INT_CARD_INSERT bits will be immediately set again when it
gets cleared, if a card is inserted. The driver need to mask the irq
to prevent interrupt storm which will freeze the system.  And the
SDHCI_INT_CARD_REMOVE gets the same situation.

The patch fixes the problem based on the initial idea from
Eric Benard.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Eric Benard <eric@eukrea.com>
Tested-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci.c