* [PATCH 0/6] mmc_spi: mmc erase resolve
@ 2020-06-29 9:47 Pragnesh Patel
2020-06-29 9:47 ` [PATCH 1/6] mmc: mmc_spi: correct the while condition Pragnesh Patel
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Pragnesh Patel @ 2020-06-29 9:47 UTC (permalink / raw)
To: u-boot
Earlier "mmc erase " command reorts Ok but not actually erase the contents
of some SD cards. This series will resolve this issue.
There is still 1 limitation for some SDHC mmc_spi cards:
"mmc erase *blk#* cnt" can not erase only 1 block that means:
=> mmc erase 0x22 1
will not erase the contents of SD card. User has to erase multiple blocks at a time that means:
=> mmc erase 0x22 2
will erase the contents of SD card.
This limitation is from micro SD card side, i found this limitation
in Strontium micro SDHC - 4 GB (class 6).
Pragnesh Patel (6):
mmc: mmc_spi: correct the while condition
mmc: mmc_spi: generate R1 response for different mmc SPI commands
mmc: read ssr for SD spi
mmc: mmc_spi: Read R2 response for send status command - CMD13
mmc: mmc_spi: Generate R1 response for erase block start and end
address
mmc_spi: generate R1b response for erase and stop transmission command
drivers/mmc/mmc.c | 5 +++++
drivers/mmc/mmc_spi.c | 52 ++++++++++++++++++++++++++++++++++++-------
2 files changed, 49 insertions(+), 8 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/6] mmc: mmc_spi: correct the while condition
2020-06-29 9:47 [PATCH 0/6] mmc_spi: mmc erase resolve Pragnesh Patel
@ 2020-06-29 9:47 ` Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 2/6] mmc: mmc_spi: generate R1 response for different mmc SPI commands Pragnesh Patel
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Pragnesh Patel @ 2020-06-29 9:47 UTC (permalink / raw)
To: u-boot
When variable i will become 0, while(i--) loop breaks but variable i will
again decrement to -1 because of i-- and that's why below condition
"if (!i && (r != resp_match_value)" will never execute, So doing "i--"
inside of while() loop solves this problem.
Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
---
drivers/mmc/mmc_spi.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index e76ab54838..86cc932151 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -105,12 +105,14 @@ static int mmc_spi_sendcmd(struct udevice *dev,
if (resp_match) {
r = ~resp_match_value;
i = CMD_TIMEOUT;
- while (i--) {
+ while (i) {
ret = dm_spi_xfer(dev, 1 * 8, NULL, &r, 0);
if (ret)
return ret;
debug(" resp%d=0x%x", rpos, r);
rpos++;
+ i--;
+
if (r == resp_match_value)
break;
}
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/6] mmc: mmc_spi: generate R1 response for different mmc SPI commands
2020-06-29 9:47 [PATCH 0/6] mmc_spi: mmc erase resolve Pragnesh Patel
2020-06-29 9:47 ` [PATCH 1/6] mmc: mmc_spi: correct the while condition Pragnesh Patel
@ 2020-06-29 9:47 ` Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 3/6] mmc: read ssr for SD spi Pragnesh Patel
` (3 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Pragnesh Patel @ 2020-06-29 9:47 UTC (permalink / raw)
To: u-boot
R1 response is 1 byte long for mmc SPI commands as per the updated
physical layer specification version 7.10.
So correct the resp and resp_size for existing commands
Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
---
drivers/mmc/mmc_spi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index 86cc932151..ddfebb6ed6 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -305,6 +305,8 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
case MMC_CMD_READ_MULTIPLE_BLOCK:
case MMC_CMD_WRITE_SINGLE_BLOCK:
case MMC_CMD_WRITE_MULTIPLE_BLOCK:
+ resp = &resp8;
+ resp_size = sizeof(resp8);
break;
default:
resp = &resp8;
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/6] mmc: read ssr for SD spi
2020-06-29 9:47 [PATCH 0/6] mmc_spi: mmc erase resolve Pragnesh Patel
2020-06-29 9:47 ` [PATCH 1/6] mmc: mmc_spi: correct the while condition Pragnesh Patel
2020-06-29 9:47 ` [PATCH 2/6] mmc: mmc_spi: generate R1 response for different mmc SPI commands Pragnesh Patel
@ 2020-06-29 9:47 ` Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 4/6] mmc: mmc_spi: Read R2 response for send status command - CMD13 Pragnesh Patel
` (2 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Pragnesh Patel @ 2020-06-29 9:47 UTC (permalink / raw)
To: u-boot
The content of ssr is useful only for erase operations.
This saves erase time.
Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
---
drivers/mmc/mmc.c | 5 +++++
drivers/mmc/mmc_spi.c | 1 +
2 files changed, 6 insertions(+)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 620bb93064..6b193d6d70 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1746,6 +1746,11 @@ static int sd_select_mode_and_width(struct mmc *mmc, uint card_caps)
mmc_set_bus_width(mmc, 1);
mmc_select_mode(mmc, MMC_LEGACY);
mmc_set_clock(mmc, mmc->tran_speed, MMC_CLK_ENABLE);
+#if CONFIG_IS_ENABLED(MMC_WRITE)
+ err = sd_read_ssr(mmc);
+ if (err)
+ pr_warn("unable to read ssr\n");
+#endif
return 0;
}
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index ddfebb6ed6..18d36878ef 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -305,6 +305,7 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
case MMC_CMD_READ_MULTIPLE_BLOCK:
case MMC_CMD_WRITE_SINGLE_BLOCK:
case MMC_CMD_WRITE_MULTIPLE_BLOCK:
+ case MMC_CMD_APP_CMD:
resp = &resp8;
resp_size = sizeof(resp8);
break;
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 4/6] mmc: mmc_spi: Read R2 response for send status command - CMD13
2020-06-29 9:47 [PATCH 0/6] mmc_spi: mmc erase resolve Pragnesh Patel
` (2 preceding siblings ...)
2020-06-29 9:47 ` [PATCH 3/6] mmc: read ssr for SD spi Pragnesh Patel
@ 2020-06-29 9:47 ` Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 5/6] mmc: mmc_spi: Generate R1 response for erase block start and end address Pragnesh Patel
2020-06-29 9:47 ` [PATCH 6/6] mmc_spi: generate R1b response for erase and stop transmission command Pragnesh Patel
5 siblings, 1 reply; 13+ messages in thread
From: Pragnesh Patel @ 2020-06-29 9:47 UTC (permalink / raw)
To: u-boot
Send status command (CMD13) will send R1 response under SD mode
but R2 response under SPI mode.
R2 response is 2 bytes long, so read 2 bytes for mmc SPI mode
Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
---
drivers/mmc/mmc_spi.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index 18d36878ef..ee56de36ec 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -266,7 +266,7 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
u8 *resp = NULL;
u32 resp_size = 0;
bool resp_match = false;
- u8 resp8 = 0, resp40[5] = { 0 }, resp_match_value = 0;
+ u8 resp8 = 0, resp16[2] = { 0 }, resp40[5] = { 0 }, resp_match_value = 0;
dm_spi_claim_bus(dev);
@@ -291,6 +291,9 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
resp_size = sizeof(resp40);
break;
case MMC_CMD_SEND_STATUS:
+ resp = (u8 *)&resp16[0];
+ resp_size = sizeof(resp16);
+ break;
case MMC_CMD_SET_BLOCKLEN:
case MMC_CMD_SPI_CRC_ON_OFF:
case MMC_CMD_STOP_TRANSMISSION:
@@ -335,8 +338,10 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
cmd->response[0] |= (uint)resp40[1] << 24;
break;
case MMC_CMD_SEND_STATUS:
- cmd->response[0] = (resp8 & 0xff) ?
- MMC_STATUS_ERROR : MMC_STATUS_RDY_FOR_DATA;
+ if (resp16[0] || resp16[1])
+ cmd->response[0] = MMC_STATUS_ERROR;
+ else
+ cmd->response[0] = MMC_STATUS_RDY_FOR_DATA;
break;
case MMC_CMD_SEND_CID:
case MMC_CMD_SEND_CSD:
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 5/6] mmc: mmc_spi: Generate R1 response for erase block start and end address
2020-06-29 9:47 [PATCH 0/6] mmc_spi: mmc erase resolve Pragnesh Patel
` (3 preceding siblings ...)
2020-06-29 9:47 ` [PATCH 4/6] mmc: mmc_spi: Read R2 response for send status command - CMD13 Pragnesh Patel
@ 2020-06-29 9:47 ` Pragnesh Patel
2020-07-08 5:22 ` Bin Meng
2020-06-29 9:47 ` [PATCH 6/6] mmc_spi: generate R1b response for erase and stop transmission command Pragnesh Patel
5 siblings, 1 reply; 13+ messages in thread
From: Pragnesh Patel @ 2020-06-29 9:47 UTC (permalink / raw)
To: u-boot
Erase block start address (CMD32) and erase block end address (CMD33)
command will generate R1 response for mmc SPI mode.
R1 response is 1 byte long for mmc SPI, so assign 1 byte as a response
for this commands.
Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
---
drivers/mmc/mmc_spi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index ee56de36ec..96a41076dc 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -309,6 +309,8 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
case MMC_CMD_WRITE_SINGLE_BLOCK:
case MMC_CMD_WRITE_MULTIPLE_BLOCK:
case MMC_CMD_APP_CMD:
+ case SD_CMD_ERASE_WR_BLK_START:
+ case SD_CMD_ERASE_WR_BLK_END:
resp = &resp8;
resp_size = sizeof(resp8);
break;
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 6/6] mmc_spi: generate R1b response for erase and stop transmission command
2020-06-29 9:47 [PATCH 0/6] mmc_spi: mmc erase resolve Pragnesh Patel
` (4 preceding siblings ...)
2020-06-29 9:47 ` [PATCH 5/6] mmc: mmc_spi: Generate R1 response for erase block start and end address Pragnesh Patel
@ 2020-06-29 9:47 ` Pragnesh Patel
2020-07-08 5:22 ` Bin Meng
5 siblings, 1 reply; 13+ messages in thread
From: Pragnesh Patel @ 2020-06-29 9:47 UTC (permalink / raw)
To: u-boot
As per the SD physical layer specification version 7.10, erase
command (CMD38) and stop transmission command (CMD12) will generate
R1b response.
R1b = R1 + busy signal
A non-zero value after the R1 response indicates card is ready for
next command.
Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
---
drivers/mmc/mmc_spi.c | 32 ++++++++++++++++++++++++++++----
1 file changed, 28 insertions(+), 4 deletions(-)
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c
index 96a41076dc..50fcd32674 100644
--- a/drivers/mmc/mmc_spi.c
+++ b/drivers/mmc/mmc_spi.c
@@ -59,6 +59,7 @@
#define CMD_TIMEOUT 8
#define READ_TIMEOUT 3000000 /* 1 sec */
#define WRITE_TIMEOUT 3000000 /* 1 sec */
+#define R1B_TIMEOUT 3000000 /* 1 sec */
struct mmc_spi_plat {
struct mmc_config cfg;
@@ -72,7 +73,7 @@ struct mmc_spi_priv {
static int mmc_spi_sendcmd(struct udevice *dev,
ushort cmdidx, u32 cmdarg, u32 resp_type,
u8 *resp, u32 resp_size,
- bool resp_match, u8 resp_match_value)
+ bool resp_match, u8 resp_match_value, bool r1b)
{
int i, rpos = 0, ret = 0;
u8 cmdo[7], r;
@@ -133,6 +134,24 @@ static int mmc_spi_sendcmd(struct udevice *dev,
resp[i] = r;
}
+ if (r1b == true) {
+ i = R1B_TIMEOUT;
+ while (i) {
+ ret = dm_spi_xfer(dev, 1 * 8, NULL, &r, 0);
+ if (ret)
+ return ret;
+
+ debug(" resp%d=0x%x", rpos, r);
+ rpos++;
+ i--;
+
+ if (r)
+ break;
+ }
+ if (!i)
+ return -ETIMEDOUT;
+ }
+
debug("\n");
return 0;
@@ -265,7 +284,7 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
int i, multi, ret = 0;
u8 *resp = NULL;
u32 resp_size = 0;
- bool resp_match = false;
+ bool resp_match = false, r1b = false;
u8 resp8 = 0, resp16[2] = { 0 }, resp40[5] = { 0 }, resp_match_value = 0;
dm_spi_claim_bus(dev);
@@ -296,12 +315,17 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
break;
case MMC_CMD_SET_BLOCKLEN:
case MMC_CMD_SPI_CRC_ON_OFF:
- case MMC_CMD_STOP_TRANSMISSION:
resp = &resp8;
resp_size = sizeof(resp8);
resp_match = true;
resp_match_value = 0x0;
break;
+ case MMC_CMD_STOP_TRANSMISSION:
+ case MMC_CMD_ERASE:
+ resp = &resp8;
+ resp_size = sizeof(resp8);
+ r1b = true;
+ break;
case MMC_CMD_SEND_CSD:
case MMC_CMD_SEND_CID:
case MMC_CMD_READ_SINGLE_BLOCK:
@@ -323,7 +347,7 @@ static int dm_mmc_spi_request(struct udevice *dev, struct mmc_cmd *cmd,
};
ret = mmc_spi_sendcmd(dev, cmd->cmdidx, cmd->cmdarg, cmd->resp_type,
- resp, resp_size, resp_match, resp_match_value);
+ resp, resp_size, resp_match, resp_match_value, r1b);
if (ret)
goto done;
--
2.17.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 1/6] mmc: mmc_spi: correct the while condition
2020-06-29 9:47 ` [PATCH 1/6] mmc: mmc_spi: correct the while condition Pragnesh Patel
@ 2020-07-08 5:21 ` Bin Meng
0 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2020-07-08 5:21 UTC (permalink / raw)
To: u-boot
On Mon, Jun 29, 2020 at 5:48 PM Pragnesh Patel
<pragnesh.patel@sifive.com> wrote:
>
> When variable i will become 0, while(i--) loop breaks but variable i will
> again decrement to -1 because of i-- and that's why below condition
> "if (!i && (r != resp_match_value)" will never execute, So doing "i--"
> inside of while() loop solves this problem.
>
> Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
> Reviewed-by: Bin Meng <bin.meng@windriver.com>
> ---
> drivers/mmc/mmc_spi.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
Tested-by: Bin Meng <bin.meng@windriver.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/6] mmc: mmc_spi: generate R1 response for different mmc SPI commands
2020-06-29 9:47 ` [PATCH 2/6] mmc: mmc_spi: generate R1 response for different mmc SPI commands Pragnesh Patel
@ 2020-07-08 5:21 ` Bin Meng
0 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2020-07-08 5:21 UTC (permalink / raw)
To: u-boot
On Mon, Jun 29, 2020 at 5:48 PM Pragnesh Patel
<pragnesh.patel@sifive.com> wrote:
>
> R1 response is 1 byte long for mmc SPI commands as per the updated
> physical layer specification version 7.10.
>
> So correct the resp and resp_size for existing commands
>
> Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
> ---
> drivers/mmc/mmc_spi.c | 2 ++
> 1 file changed, 2 insertions(+)
>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
Tested-by: Bin Meng <bin.meng@windriver.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 3/6] mmc: read ssr for SD spi
2020-06-29 9:47 ` [PATCH 3/6] mmc: read ssr for SD spi Pragnesh Patel
@ 2020-07-08 5:21 ` Bin Meng
0 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2020-07-08 5:21 UTC (permalink / raw)
To: u-boot
On Mon, Jun 29, 2020 at 5:48 PM Pragnesh Patel
<pragnesh.patel@sifive.com> wrote:
>
> The content of ssr is useful only for erase operations.
> This saves erase time.
>
> Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
> Reviewed-by: Bin Meng <bin.meng@windriver.com>
> ---
> drivers/mmc/mmc.c | 5 +++++
> drivers/mmc/mmc_spi.c | 1 +
> 2 files changed, 6 insertions(+)
>
Tested-by: Bin Meng <bin.meng@windriver.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 4/6] mmc: mmc_spi: Read R2 response for send status command - CMD13
2020-06-29 9:47 ` [PATCH 4/6] mmc: mmc_spi: Read R2 response for send status command - CMD13 Pragnesh Patel
@ 2020-07-08 5:21 ` Bin Meng
0 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2020-07-08 5:21 UTC (permalink / raw)
To: u-boot
On Mon, Jun 29, 2020 at 5:48 PM Pragnesh Patel
<pragnesh.patel@sifive.com> wrote:
>
> Send status command (CMD13) will send R1 response under SD mode
> but R2 response under SPI mode.
>
> R2 response is 2 bytes long, so read 2 bytes for mmc SPI mode
>
> Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
> ---
> drivers/mmc/mmc_spi.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
Tested-by: Bin Meng <bin.meng@windriver.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 5/6] mmc: mmc_spi: Generate R1 response for erase block start and end address
2020-06-29 9:47 ` [PATCH 5/6] mmc: mmc_spi: Generate R1 response for erase block start and end address Pragnesh Patel
@ 2020-07-08 5:22 ` Bin Meng
0 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2020-07-08 5:22 UTC (permalink / raw)
To: u-boot
On Mon, Jun 29, 2020 at 5:48 PM Pragnesh Patel
<pragnesh.patel@sifive.com> wrote:
>
> Erase block start address (CMD32) and erase block end address (CMD33)
> command will generate R1 response for mmc SPI mode.
>
> R1 response is 1 byte long for mmc SPI, so assign 1 byte as a response
> for this commands.
>
> Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
> ---
> drivers/mmc/mmc_spi.c | 2 ++
> 1 file changed, 2 insertions(+)
>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
Tested-by: Bin Meng <bin.meng@windriver.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 6/6] mmc_spi: generate R1b response for erase and stop transmission command
2020-06-29 9:47 ` [PATCH 6/6] mmc_spi: generate R1b response for erase and stop transmission command Pragnesh Patel
@ 2020-07-08 5:22 ` Bin Meng
0 siblings, 0 replies; 13+ messages in thread
From: Bin Meng @ 2020-07-08 5:22 UTC (permalink / raw)
To: u-boot
On Mon, Jun 29, 2020 at 5:48 PM Pragnesh Patel
<pragnesh.patel@sifive.com> wrote:
>
> As per the SD physical layer specification version 7.10, erase
> command (CMD38) and stop transmission command (CMD12) will generate
> R1b response.
>
> R1b = R1 + busy signal
>
> A non-zero value after the R1 response indicates card is ready for
> next command.
>
> Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com>
> ---
> drivers/mmc/mmc_spi.c | 32 ++++++++++++++++++++++++++++----
> 1 file changed, 28 insertions(+), 4 deletions(-)
>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
Tested-by: Bin Meng <bin.meng@windriver.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-07-08 5:22 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-29 9:47 [PATCH 0/6] mmc_spi: mmc erase resolve Pragnesh Patel
2020-06-29 9:47 ` [PATCH 1/6] mmc: mmc_spi: correct the while condition Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 2/6] mmc: mmc_spi: generate R1 response for different mmc SPI commands Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 3/6] mmc: read ssr for SD spi Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 4/6] mmc: mmc_spi: Read R2 response for send status command - CMD13 Pragnesh Patel
2020-07-08 5:21 ` Bin Meng
2020-06-29 9:47 ` [PATCH 5/6] mmc: mmc_spi: Generate R1 response for erase block start and end address Pragnesh Patel
2020-07-08 5:22 ` Bin Meng
2020-06-29 9:47 ` [PATCH 6/6] mmc_spi: generate R1b response for erase and stop transmission command Pragnesh Patel
2020-07-08 5:22 ` Bin Meng
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.