Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Aug 2013 15:07:54 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r254716 - head/sys/dev/mmc
Message-ID:  <201308231507.r7NF7spP008515@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308231507.r7NF7spP008515>