Author: ian Date: Fri Aug 23 15:07:54 2013 New Revision: 254716 URL: http://svnweb.freebsd.org/changeset/base/254716
Log: Don't give up so easily on failure of CMD55 to put the card into app-cmd mode. We don't know why it failed, so we can't know that a retry will also fail (the low-level driver might have reset the controller state machine or something similar that would allow a retry to work). Modified: head/sys/dev/mmc/mmc.c Modified: head/sys/dev/mmc/mmc.c ============================================================================== --- head/sys/dev/mmc/mmc.c Fri Aug 23 14:50:03 2013 (r254715) +++ head/sys/dev/mmc/mmc.c Fri Aug 23 15:07:54 2013 (r254716) @@ -106,7 +106,7 @@ struct mmc_ivars { #define CMD_RETRIES 3 -#define CARD_ID_FREQUENCY 400000 /* Spec requires 400KHz max during ID phase. */ +#define CARD_ID_FREQUENCY 400000 /* Spec requires 400kHz max during ID phase. */ static SYSCTL_NODE(_hw, OID_AUTO, mmc, CTLFLAG_RD, NULL, "mmc driver"); @@ -447,8 +447,8 @@ mmc_wait_for_app_cmd(struct mmc_softc *s err = appcmd.error; if (err == MMC_ERR_NONE) { if (!(appcmd.resp[0] & R1_APP_CMD)) - return MMC_ERR_FAILED; /* Retries won't help. */ - if (mmc_wait_for_cmd(sc, cmd, 0) != 0) + err = MMC_ERR_FAILED; + else if (mmc_wait_for_cmd(sc, cmd, 0) != 0) err = MMC_ERR_FAILED; else err = cmd->error; _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"