[U-Boot] [PATCH v2 2/2] mmc: Print send_cmd response only when return value is zero

Bin Meng bmeng.cn at gmail.com
Fri Mar 18 05:53:14 CET 2016


send_cmd response is valid only when no error happened. If an error
occured, let mmc_send_cmd() print the return value to aid debugging.

Signed-off-by: Bin Meng <bmeng.cn at gmail.com>

---

Changes in v2:
- change commit subject: it should be 'return value is zero'

 drivers/mmc/mmc.c | 80 +++++++++++++++++++++++++++++--------------------------
 1 file changed, 42 insertions(+), 38 deletions(-)

diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index a7f9843..d3c22ab 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -61,46 +61,50 @@ int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
 	printf("CMD_SEND:%d\n", cmd->cmdidx);
 	printf("\t\tARG\t\t\t 0x%08X\n", cmd->cmdarg);
 	ret = mmc->cfg->ops->send_cmd(mmc, cmd, data);
-	switch (cmd->resp_type) {
-	case MMC_RSP_NONE:
-		printf("\t\tMMC_RSP_NONE\n");
-		break;
-	case MMC_RSP_R1:
-		printf("\t\tMMC_RSP_R1,5,6,7 \t 0x%08X \n",
-			cmd->response[0]);
-		break;
-	case MMC_RSP_R1b:
-		printf("\t\tMMC_RSP_R1b\t\t 0x%08X \n",
-			cmd->response[0]);
-		break;
-	case MMC_RSP_R2:
-		printf("\t\tMMC_RSP_R2\t\t 0x%08X \n",
-			cmd->response[0]);
-		printf("\t\t          \t\t 0x%08X \n",
-			cmd->response[1]);
-		printf("\t\t          \t\t 0x%08X \n",
-			cmd->response[2]);
-		printf("\t\t          \t\t 0x%08X \n",
-			cmd->response[3]);
-		printf("\n");
-		printf("\t\t\t\t\tDUMPING DATA\n");
-		for (i = 0; i < 4; i++) {
-			int j;
-			printf("\t\t\t\t\t%03d - ", i*4);
-			ptr = (u8 *)&cmd->response[i];
-			ptr += 3;
-			for (j = 0; j < 4; j++)
-				printf("%02X ", *ptr--);
+	if (ret) {
+		printf("\t\tRET\t\t\t %d\n", ret);
+	} else {
+		switch (cmd->resp_type) {
+		case MMC_RSP_NONE:
+			printf("\t\tMMC_RSP_NONE\n");
+			break;
+		case MMC_RSP_R1:
+			printf("\t\tMMC_RSP_R1,5,6,7 \t 0x%08X \n",
+				cmd->response[0]);
+			break;
+		case MMC_RSP_R1b:
+			printf("\t\tMMC_RSP_R1b\t\t 0x%08X \n",
+				cmd->response[0]);
+			break;
+		case MMC_RSP_R2:
+			printf("\t\tMMC_RSP_R2\t\t 0x%08X \n",
+				cmd->response[0]);
+			printf("\t\t          \t\t 0x%08X \n",
+				cmd->response[1]);
+			printf("\t\t          \t\t 0x%08X \n",
+				cmd->response[2]);
+			printf("\t\t          \t\t 0x%08X \n",
+				cmd->response[3]);
 			printf("\n");
+			printf("\t\t\t\t\tDUMPING DATA\n");
+			for (i = 0; i < 4; i++) {
+				int j;
+				printf("\t\t\t\t\t%03d - ", i*4);
+				ptr = (u8 *)&cmd->response[i];
+				ptr += 3;
+				for (j = 0; j < 4; j++)
+					printf("%02X ", *ptr--);
+				printf("\n");
+			}
+			break;
+		case MMC_RSP_R3:
+			printf("\t\tMMC_RSP_R3,4\t\t 0x%08X \n",
+				cmd->response[0]);
+			break;
+		default:
+			printf("\t\tERROR MMC rsp not supported\n");
+			break;
 		}
-		break;
-	case MMC_RSP_R3:
-		printf("\t\tMMC_RSP_R3,4\t\t 0x%08X \n",
-			cmd->response[0]);
-		break;
-	default:
-		printf("\t\tERROR MMC rsp not supported\n");
-		break;
 	}
 #else
 	ret = mmc->cfg->ops->send_cmd(mmc, cmd, data);
-- 
1.8.2.1



More information about the U-Boot mailing list