I see, in my case intel_execute_tuning() in sdhci-pci-core.c is what is calling into sdhci_execute_tuning() so I should check the value of tuning_err there and possibly return it? The issue I'm trying to solve is only for DDR50 cards that do not support tuning so I could conditionally return tuning_err if the timing mode is DDR50. Maybe something like this? --- drivers/mmc/host/sdhci-pci-core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c index 1f0bd723f011..9aedb476bd5d 100644 --- a/drivers/mmc/host/sdhci-pci-core.c +++ b/drivers/mmc/host/sdhci-pci-core.c @@ -725,6 +725,9 @@ static int intel_execute_tuning(struct mmc_host *mmc, u32 opcode) if (err) return err; + if (host->tuning_err && mmc->ios.timing == MMC_TIMING_UHS_DDR50) + return host->tuning_err; + /* * Tuning can leave the IP in an active state (Buffer Read Enable bit * set) which prevents the entry to low power states (i.e. S0i3). Data -- Regards Erick