Re: [PATCH v2] mmc: host: Wait for Vdd to settle on card power off

From: Adrian Hunter
Date: Thu Mar 20 2025 - 03:26:33 EST


On 14/03/25 21:50, Erick Shepherd wrote:
> The SD spec version 6.0 section 6.4.1.5 requires that Vdd must be
> lowered to less than 0.5V for a minimum of 1 ms when powering off a
> card. Increase wait to 15 ms so that voltage has time to drain down
> to 0.5V and cards can power off correctly. Issues with voltage drain
> time were only observed on Apollo Lake and Bay Trail host controllers
> so this fix is limited to those devices.
>
> Signed-off-by: Erick Shepherd <erick.shepherd@xxxxxx>

Can we leave a blank line after the block. It was that way before.

With that, you can add:

Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>

> ---
> drivers/mmc/host/sdhci-pci-core.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c
> index 1f0bd723f011..b1f7c11ea61e 100644
> --- a/drivers/mmc/host/sdhci-pci-core.c
> +++ b/drivers/mmc/host/sdhci-pci-core.c
> @@ -610,9 +610,12 @@ static void sdhci_intel_set_power(struct sdhci_host *host, unsigned char mode,
>
> sdhci_set_power(host, mode, vdd);
>
> - if (mode == MMC_POWER_OFF)
> + if (mode == MMC_POWER_OFF) {
> + if (slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_APL_SD ||
> + slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_BYT_SD)
> + usleep_range(15000, 17500);
> return;
> -
> + }

Blank line here

> /*
> * Bus power might not enable after D3 -> D0 transition due to the
> * present state not yet having propagated. Retry for up to 2ms.