Re: [PATCH V1 1/1] mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce timeout

From: Ulf Hansson
Date: Mon Nov 07 2022 - 15:14:25 EST


On Fri, 4 Nov 2022 at 10:55, Chevron Li <chevron.li@xxxxxxxxxxxxxx> wrote:
>
> The SD card is recognized failed sometimes when resume from suspend.
> Because CD# debounce time too long then card present report wrong.
> Finally, card is recognized failed.
>
> Signed-off-by: Chevron Li <chevron.li@xxxxxxxxxxxxxx>

Applied for next, thanks!

Kind regards
Uffe


> ---
> Change in V1:
> Adjust bayhub chip setting for CD# debounce time to minimum value
> ---
> drivers/mmc/host/sdhci-pci-o2micro.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-pci-o2micro.c b/drivers/mmc/host/sdhci-pci-o2micro.c
> index ad457cd9cbaa..bca1d095b759 100644
> --- a/drivers/mmc/host/sdhci-pci-o2micro.c
> +++ b/drivers/mmc/host/sdhci-pci-o2micro.c
> @@ -32,6 +32,7 @@
> #define O2_SD_CAPS 0xE0
> #define O2_SD_ADMA1 0xE2
> #define O2_SD_ADMA2 0xE7
> +#define O2_SD_MISC_CTRL2 0xF0
> #define O2_SD_INF_MOD 0xF1
> #define O2_SD_MISC_CTRL4 0xFC
> #define O2_SD_MISC_CTRL 0x1C0
> @@ -877,6 +878,12 @@ static int sdhci_pci_o2_probe(struct sdhci_pci_chip *chip)
> /* Set Tuning Windows to 5 */
> pci_write_config_byte(chip->pdev,
> O2_SD_TUNING_CTRL, 0x55);
> + //Adjust 1st and 2nd CD debounce time
> + pci_read_config_dword(chip->pdev, O2_SD_MISC_CTRL2, &scratch_32);
> + scratch_32 &= 0xFFE7FFFF;
> + scratch_32 |= 0x00180000;
> + pci_write_config_dword(chip->pdev, O2_SD_MISC_CTRL2, scratch_32);
> + pci_write_config_dword(chip->pdev, O2_SD_DETECT_SETTING, 1);
> /* Lock WP */
> ret = pci_read_config_byte(chip->pdev,
> O2_SD_LOCK_WP, &scratch);
>
> base-commit: ee6050c8af96bba2f81e8b0793a1fc2f998fcd20
> --
> 2.25.1
>