[RFC PATCH] mmc: sdhci: return generic tuning failures

Subsystems: multimedia card (mmc), secure digital (sd) and sdio subsystem, secure digital host controller interface (sdhci) driver, the rest

STALE91d

2 messages, 2 authors, 2026-07-03 · open the first message on its own page

[RFC PATCH] mmc: sdhci: return generic tuning failures

From: Pengpeng Hou <hidden>
Date: 2026-06-23 14:02:11

__sdhci_execute_tuning() returns tuning errors such as -ETIMEDOUT and
-EAGAIN. The generic sdhci_execute_tuning() path stores that value in
host->tuning_err, but keeps its public return variable at zero, so
callers see success even when generic tuning failed.

Return the generic tuning result while still preserving
host->tuning_err. This is intended as an RFC patch because some users
may rely on the historical fixed-clock fallback behavior.

Signed-off-by: Pengpeng Hou <redacted>
---
 drivers/mmc/host/sdhci.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index e3bf901b1..a90e48383 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2967,7 +2967,8 @@ int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
 
 	sdhci_start_tuning(host);
 
-	host->tuning_err = __sdhci_execute_tuning(host, opcode);
+	err = __sdhci_execute_tuning(host, opcode);
+	host->tuning_err = err;
 
 	sdhci_end_tuning(host);
 out:
-- 
2.50.1 (Apple Git-155)

Re: [RFC PATCH] mmc: sdhci: return generic tuning failures

From: Adrian Hunter <adrian.hunter@intel.com>
Date: 2026-07-03 15:22:52

On 23/06/2026 17:02, Pengpeng Hou wrote:
__sdhci_execute_tuning() returns tuning errors such as -ETIMEDOUT and
-EAGAIN. The generic sdhci_execute_tuning() path stores that value in
host->tuning_err, but keeps its public return variable at zero, so
callers see success even when generic tuning failed.
Callers that need to, check tuning_err
quoted hunk
Return the generic tuning result while still preserving
host->tuning_err. This is intended as an RFC patch because some users
may rely on the historical fixed-clock fallback behavior.

Signed-off-by: Pengpeng Hou <redacted>
---
 drivers/mmc/host/sdhci.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index e3bf901b1..a90e48383 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2967,7 +2967,8 @@ int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
 
 	sdhci_start_tuning(host);
 
-	host->tuning_err = __sdhci_execute_tuning(host, opcode);
+	err = __sdhci_execute_tuning(host, opcode);
+	host->tuning_err = err;
No, the code is meant to be the way it is.
 
 	sdhci_end_tuning(host);
 out:

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help