summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--hw/sd.c5
-rw-r--r--hw/sd.h4
2 files changed, 5 insertions, 4 deletions
diff --git a/hw/sd.c b/hw/sd.c
index 799c945335..7974564ecb 100644
--- a/hw/sd.c
+++ b/hw/sd.c
@@ -1151,9 +1151,10 @@ int sd_do_command(SDState *sd, struct sd_request_s *req,
             return 0;
         }
 
-    if (last_status & APP_CMD)
+    if (last_status & APP_CMD) {
         rtype = sd_app_command(sd, *req);
-    else
+        sd->card_status &= ~APP_CMD;
+    } else
         rtype = sd_normal_command(sd, *req);
 
     sd->current_cmd = req->cmd;
diff --git a/hw/sd.h b/hw/sd.h
index cc05dbf179..2851e729fb 100644
--- a/hw/sd.h
+++ b/hw/sd.h
@@ -56,8 +56,8 @@
 typedef enum {
     sd_none = -1,
     sd_bc = 0,	/* broadcast -- no response */
-    sd_bcr,		/* broadcast with response */
-    sd_ac,		/* addressed -- no data transfer */
+    sd_bcr,	/* broadcast with response */
+    sd_ac,	/* addressed -- no data transfer */
     sd_adtc,	/* addressed with data transfer */
 } sd_cmd_type_t;