linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2]
@ 2025-07-04  9:03 Rex Chen
  2025-07-04  9:03 ` [PATCH v2 1/2] mmc: core: SPI mode remove cmd7 Rex Chen
  2025-07-04  9:03 ` [PATCH v2 2/2] mmc: mmc_spi: multiple block read remove read crc ack Rex Chen
  0 siblings, 2 replies; 4+ messages in thread
From: Rex Chen @ 2025-07-04  9:03 UTC (permalink / raw)
  To: ulf.hansson
  Cc: conor.dooley, bartosz.golaszewski, viro, linux-mmc, avri.altman,
	shawn.lin, adrian.hunter, wsa+renesas, rex.chen_1

[patch 1/2]
Update based on reviewer comments
[patch 2/2]
No change for patch 2

Rex Chen (2):
  mmc: core: SPI mode remove cmd7
  mmc: mmc_spi: multiple block read remove read crc ack

 drivers/mmc/core/sdio.c    | 6 +++++-
 drivers/mmc/host/mmc_spi.c | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] mmc: core: SPI mode remove cmd7
  2025-07-04  9:03 [PATCH v2 0/2] Rex Chen
@ 2025-07-04  9:03 ` Rex Chen
  2025-07-04  9:03 ` [PATCH v2 2/2] mmc: mmc_spi: multiple block read remove read crc ack Rex Chen
  1 sibling, 0 replies; 4+ messages in thread
From: Rex Chen @ 2025-07-04  9:03 UTC (permalink / raw)
  To: ulf.hansson
  Cc: conor.dooley, bartosz.golaszewski, viro, linux-mmc, avri.altman,
	shawn.lin, adrian.hunter, wsa+renesas, rex.chen_1

SPI mode doesn't support cmd7, so remove it in mmc_sdio_alive() and
confirm if sdio is active by checking CCCR register value is available
or not.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
---
 drivers/mmc/core/sdio.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 0f753367aec1..83085e76486a 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -945,7 +945,11 @@ static void mmc_sdio_remove(struct mmc_host *host)
  */
 static int mmc_sdio_alive(struct mmc_host *host)
 {
-	return mmc_select_card(host->card);
+	if (!mmc_host_is_spi(host))
+		return mmc_select_card(host->card);
+	else
+		return mmc_io_rw_direct(host->card, 0, 0, SDIO_CCCR_CCCR, 0,
+					NULL);
 }
 
 /*
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] mmc: mmc_spi: multiple block read remove read crc ack
  2025-07-04  9:03 [PATCH v2 0/2] Rex Chen
  2025-07-04  9:03 ` [PATCH v2 1/2] mmc: core: SPI mode remove cmd7 Rex Chen
@ 2025-07-04  9:03 ` Rex Chen
  2025-07-04 10:13   ` Ulf Hansson
  1 sibling, 1 reply; 4+ messages in thread
From: Rex Chen @ 2025-07-04  9:03 UTC (permalink / raw)
  To: ulf.hansson
  Cc: conor.dooley, bartosz.golaszewski, viro, linux-mmc, avri.altman,
	shawn.lin, adrian.hunter, wsa+renesas, rex.chen_1

Multiple block read doesn't need to read crc ack, so remove it.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
---
 drivers/mmc/host/mmc_spi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
index 47443fb5eb33..f42d5f9c48c1 100644
--- a/drivers/mmc/host/mmc_spi.c
+++ b/drivers/mmc/host/mmc_spi.c
@@ -563,7 +563,7 @@ mmc_spi_setup_data_message(struct mmc_spi_host *host, bool multiple, bool write)
 	 * the next token (next data block, or STOP_TRAN).  We can try to
 	 * minimize I/O ops by using a single read to collect end-of-busy.
 	 */
-	if (multiple || write) {
+	if (write) {
 		t = &host->early_status;
 		memset(t, 0, sizeof(*t));
 		t->len = write ? sizeof(scratch->status) : 1;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] mmc: mmc_spi: multiple block read remove read crc ack
  2025-07-04  9:03 ` [PATCH v2 2/2] mmc: mmc_spi: multiple block read remove read crc ack Rex Chen
@ 2025-07-04 10:13   ` Ulf Hansson
  0 siblings, 0 replies; 4+ messages in thread
From: Ulf Hansson @ 2025-07-04 10:13 UTC (permalink / raw)
  To: Rex Chen
  Cc: conor.dooley, bartosz.golaszewski, viro, linux-mmc, avri.altman,
	shawn.lin, adrian.hunter, wsa+renesas

On Fri, 4 Jul 2025 at 11:03, Rex Chen <rex.chen_1@nxp.com> wrote:
>
> Multiple block read doesn't need to read crc ack, so remove it.

In v1 I asked for more information here, as this is just too vague.

Exactly *why* doesn't multiple block read need CRC ack? Please
elaborate on that here, in the commit message.

Kind regards
Uffe

>
> Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
> ---
>  drivers/mmc/host/mmc_spi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index 47443fb5eb33..f42d5f9c48c1 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -563,7 +563,7 @@ mmc_spi_setup_data_message(struct mmc_spi_host *host, bool multiple, bool write)
>          * the next token (next data block, or STOP_TRAN).  We can try to
>          * minimize I/O ops by using a single read to collect end-of-busy.
>          */
> -       if (multiple || write) {
> +       if (write) {
>                 t = &host->early_status;
>                 memset(t, 0, sizeof(*t));
>                 t->len = write ? sizeof(scratch->status) : 1;
> --
> 2.25.1
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-07-04 10:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-04  9:03 [PATCH v2 0/2] Rex Chen
2025-07-04  9:03 ` [PATCH v2 1/2] mmc: core: SPI mode remove cmd7 Rex Chen
2025-07-04  9:03 ` [PATCH v2 2/2] mmc: mmc_spi: multiple block read remove read crc ack Rex Chen
2025-07-04 10:13   ` Ulf Hansson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).