UPSTREAM: mmc: sdhci: Fix sdhci_card_busy()
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 23 Jun 2016 11:00:58 +0000 (14:00 +0300)
committerZiyuan Xu <xzy.xu@rock-chips.com>
Fri, 12 Aug 2016 01:30:20 +0000 (09:30 +0800)
commit8a1eecaf86bbe3dc42043acac59473034ebc2e6a
treefb2d1650820b572ab01af11dfc7a09f70ae4722c
parent115ededce48a9c4e6ea751c8aa8fa5bb33844cfc
UPSTREAM: mmc: sdhci: Fix sdhci_card_busy()

host->card_busy() was introduced for SD voltage switching which checks all
4 data lines.

Increasingly, host->card_busy is being used to poll the the busy signal
which is only data line 0 (DAT[0]).

The current logic in sdhci_card_busy() does not work in that case because
it returns false if any of the data lines is high.  It also ignores
possibilities:
- data lines 1-3 are not connected and could show at any level
- data lines 1-2 can be used by SDIO for other purposes

According to the SD specification, it is OK to check any of the data lines
for voltage switching, so change to use DAT[0] only.

(cherry picked from commit e613cc477c777a175c89d607d1f7a8ef528d2c43)

Change-Id: I11862e4ab67867271caedc01c0e74c5e24daea37
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
drivers/mmc/host/sdhci.c