OSDN Git Service

mmc: sdhci-msm: Fix power IRQ issue uncovered in 3.10 kernel
authorSahitya Tummala <stummala@codeaurora.org>
Tue, 6 Aug 2013 09:52:28 +0000 (15:22 +0530)
committerSubhash Jadavani <subhashj@codeaurora.org>
Fri, 27 May 2016 17:28:49 +0000 (10:28 -0700)
commit2858ae8aceb39b24d51eec05975d93b73ca271d2
treeda31d3f37bd2c486532a30bdcd454761446ec6ed
parent0c6d03791ca275d3d8f6c57bbee1a5a39e80d93b
mmc: sdhci-msm: Fix power IRQ issue uncovered in 3.10 kernel

The request to change the VDD I/O voltage level to high/low will
trigger an IRQ only when -

1. SWITCHABLE_SIGNALING_VOLTAGE bit 29 of SDCC_MCI_GENERICS register
is set.
2. Above condition is true and when there is a state change in VDD
bit 3 of SDHCi Host Control 2 register.

Until now, the MMC core layer issues I/O high request only after
the controller is powered up. The I/O high request is same as the reset
state of host control2 register which will never trigger an IRQ. The
driver already handles this case by ensuring that I/O voltage is set
to high as part of power up itself and thus returns immediately when
I/O high request is issued later. But in 3.10 kernel, this request is
issued even before the controller is powered up. Hence, check for
host->pwr state to avoid waiting for an IRQ that never comes.

Change-Id: I31b6723f53397be1ba151305ead89e739560eb20
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
drivers/mmc/host/sdhci-msm.c