diff mbox series

mmc: mmc_spi: Do not drop first RX byte after CMD TX

Message ID 20210124063402.208203-1-jiaxun.yang@flygoat.com
State Rejected
Delegated to: Peng Fan
Headers show
Series mmc: mmc_spi: Do not drop first RX byte after CMD TX | expand

Commit Message

Jiaxun Yang Jan. 24, 2021, 6:34 a.m. UTC
As per MMC SPI specification, R1 response could just follow
the CMD TX. Currently we drop the first RX byte after the CMD
TX. It is harmless in realworld as MMC card need time to take
command action so the first resp will always be R1b(busy).

However in QEMU ssi-sd emulation, R1 resp is just followed after,
so R1 will be dropped here.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 drivers/mmc/mmc_spi.c | 4 ----
 1 file changed, 4 deletions(-)

Comments

Bin Meng Jan. 24, 2021, 11:38 a.m. UTC | #1
It looks somehow this email did not arrive the mailing list?

As for the patch, U-Boot mms_spi driver does nothing wrong. The dropped byte is for Ncr as required by the spec.

The issue you mentioned in QEMU is fixed by the following patch:
http://patchwork.ozlabs.org/project/qemu-devel/patch/20210123104016.17485-4-bmeng.cn@gmail.com/

Regards,
Bin

-----Original Message-----
From: Jiaxun Yang <jiaxun.yang@flygoat.com> 
Sent: Sunday, January 24, 2021 2:34 PM
To: u-boot@lists.denx.de
Cc: Meng, Bin <Bin.Meng@windriver.com>; peng.fan@nxp.com; Jiaxun Yang <jiaxun.yang@flygoat.com>
Subject: [PATCH] mmc: mmc_spi: Do not drop first RX byte after CMD TX

As per MMC SPI specification, R1 response could just follow the CMD TX. Currently we drop the first RX byte after the CMD TX. It is harmless in realworld as MMC card need time to take command action so the first resp will always be R1b(busy).

However in QEMU ssi-sd emulation, R1 resp is just followed after, so R1 will be dropped here.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 drivers/mmc/mmc_spi.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c index 46800bbed2..1da963ba1e 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -94,10 +94,6 @@ static int mmc_spi_sendcmd(struct udevice *dev,
 	if (ret)
 		return ret;
 
-	ret = dm_spi_xfer(dev, 1 * 8, NULL, &r, 0);
-	if (ret)
-		return ret;
-
 	if (!resp || !resp_size)
 		return 0;
 
--
2.30.0
Jiaxun Yang Jan. 25, 2021, 3:32 a.m. UTC | #2
在 2021/1/24 下午7:38, Meng, Bin 写道:
> It looks somehow this email did not arrive the mailing list?

Yes, it is waiting list moderator for approval as it's my first mail to 
U-Boot list.

>
> As for the patch, U-Boot mms_spi driver does nothing wrong. The dropped byte is for Ncr as required by the spec.
>
> The issue you mentioned in QEMU is fixed by the following patch:
> http://patchwork.ozlabs.org/project/qemu-devel/patch/20210123104016.17485-4-bmeng.cn@gmail.com/

Thanks, It solved by problem.

- Jiaxun

>
> Regards,
> Bin
>
diff mbox series

Patch

diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index 46800bbed2..1da963ba1e 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -94,10 +94,6 @@  static int mmc_spi_sendcmd(struct udevice *dev,
 	if (ret)
 		return ret;
 
-	ret = dm_spi_xfer(dev, 1 * 8, NULL, &r, 0);
-	if (ret)
-		return ret;
-
 	if (!resp || !resp_size)
 		return 0;