hw/sd: ssi-sd: Fix the wrong command index for STOP_TRANSMISSION
authorBin Meng <bin.meng@windriver.com>
Sat, 23 Jan 2021 10:40:00 +0000 (18:40 +0800)
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>
Sun, 24 Jan 2021 19:11:05 +0000 (20:11 +0100)
This fixes the wrong command index for STOP_TRANSMISSION, the
required command to interrupt the multiple block read command,
in the old codes. It should be CMD12 (0x4c), not CMD13 (0x4d).

Fixes: 775616c3ae8c ("Partial SD card SPI mode support")
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210123104016.17485-10-bmeng.cn@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
hw/sd/ssi-sd.c

index 1cdaf73c29260758f8a16b75bcdf7177e4293864..12dffb6f55ea8b05aae2f77e70c049cc4dec0a06 100644 (file)
@@ -83,7 +83,7 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uint32_t val)
     ssi_sd_state *s = SSI_SD(dev);
 
     /* Special case: allow CMD12 (STOP TRANSMISSION) while reading data.  */
-    if (s->mode == SSI_SD_DATA_READ && val == 0x4d) {
+    if (s->mode == SSI_SD_DATA_READ && val == 0x4c) {
         s->mode = SSI_SD_CMD;
         /* There must be at least one byte delay before the card responds.  */
         s->stopping = 1;