OSDN Git Service

mmc: sdhci: Fix sdhci_card_busy()
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 23 Jun 2016 11:00:58 +0000 (14:00 +0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 25 Jul 2016 08:34:07 +0000 (10:34 +0200)
commite613cc477c777a175c89d607d1f7a8ef528d2c43
treeb01f745b7aa0d02e32cfdd3d108d4d61d180d589
parent7c42dbf335bc9f63a69a46489f02496029739622
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.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci.c