summaryrefslogtreecommitdiffstats
path: root/sys/dev/mmc/mmc.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2008-10-08 21:10:55 +0000
committermav <mav@FreeBSD.org>2008-10-08 21:10:55 +0000
commit9f45d71ed9ee52529a458ce00ba729a91c28653b (patch)
treead030b4f0f3e2c3e84df6ddb1d023e8c3ead3081 /sys/dev/mmc/mmc.c
parent3092a6ddfc3a0324418b8cf815bb9eb11eb9dc4f (diff)
downloadFreeBSD-src-9f45d71ed9ee52529a458ce00ba729a91c28653b.zip
FreeBSD-src-9f45d71ed9ee52529a458ce00ba729a91c28653b.tar.gz
Only voltage bits should be zero in send_op_cond argument to ignore busy.
Diffstat (limited to 'sys/dev/mmc/mmc.c')
-rw-r--r--sys/dev/mmc/mmc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/mmc/mmc.c b/sys/dev/mmc/mmc.c
index 2f5aad9..c99b366 100644
--- a/sys/dev/mmc/mmc.c
+++ b/sys/dev/mmc/mmc.c
@@ -428,7 +428,8 @@ mmc_send_app_op_cond(struct mmc_softc *sc, uint32_t ocr, uint32_t *rocr)
err = mmc_wait_for_app_cmd(sc, 0, &cmd, CMD_RETRIES);
if (err != MMC_ERR_NONE)
break;
- if ((cmd.resp[0] & MMC_OCR_CARD_BUSY) || ocr == 0)
+ if ((cmd.resp[0] & MMC_OCR_CARD_BUSY) ||
+ (ocr & MMC_OCR_VOLTAGE) == 0)
break;
err = MMC_ERR_TIMEOUT;
mmc_ms_delay(10);
@@ -454,7 +455,8 @@ mmc_send_op_cond(struct mmc_softc *sc, uint32_t ocr, uint32_t *rocr)
err = mmc_wait_for_cmd(sc, &cmd, CMD_RETRIES);
if (err != MMC_ERR_NONE)
break;
- if ((cmd.resp[0] & MMC_OCR_CARD_BUSY) || ocr == 0)
+ if ((cmd.resp[0] & MMC_OCR_CARD_BUSY) ||
+ (ocr & MMC_OCR_VOLTAGE) == 0)
break;
err = MMC_ERR_TIMEOUT;
mmc_ms_delay(10);
OpenPOWER on IntegriCloud