diff mbox series

[V1,1/1] mmc:sdhci-pci-o2micro:fix card detect issue because card detect debouncing isn't done

Message ID 20220602132543.596-1-chevron.li@bayhubtech.com
State New
Headers show
Series [V1,1/1] mmc:sdhci-pci-o2micro:fix card detect issue because card detect debouncing isn't done | expand

Commit Message

Chevron Li (WH) June 2, 2022, 1:25 p.m. UTC
get_cd result is uncorrect during card detect debouncing
we need to wait card detect stable before return get_cd result

Signed-off-by: Chevron Li<chevron.li@bayhubtech.com>
---
change in V1:
add wait card detect stable logical before return card detect result.
---
 drivers/mmc/host/sdhci-pci-o2micro.c | 2 ++
 1 file changed, 2 insertions(+)


base-commit: d1dc87763f406d4e67caf16dbe438a5647692395

Comments

Ulf Hansson June 7, 2022, 10:43 a.m. UTC | #1
On Thu, 2 Jun 2022 at 15:26, Chevron Li <chevron.li@bayhubtech.com> wrote:
>
> get_cd result is uncorrect during card detect debouncing
> we need to wait card detect stable before return get_cd result
>
> Signed-off-by: Chevron Li<chevron.li@bayhubtech.com>

Applied for fixes, by adding a fixes+stable tag, thanks!

Kind regards
Uffe


> ---
> change in V1:
> add wait card detect stable logical before return card detect result.
> ---
>  drivers/mmc/host/sdhci-pci-o2micro.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-pci-o2micro.c b/drivers/mmc/host/sdhci-pci-o2micro.c
> index 92c20cb8074a..0d4d343dbb77 100644
> --- a/drivers/mmc/host/sdhci-pci-o2micro.c
> +++ b/drivers/mmc/host/sdhci-pci-o2micro.c
> @@ -152,6 +152,8 @@ static int sdhci_o2_get_cd(struct mmc_host *mmc)
>
>         if (!(sdhci_readw(host, O2_PLL_DLL_WDT_CONTROL1) & O2_PLL_LOCK_STATUS))
>                 sdhci_o2_enable_internal_clock(host);
> +       else
> +               sdhci_o2_wait_card_detect_stable(host);
>
>         return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT);
>  }
>
> base-commit: d1dc87763f406d4e67caf16dbe438a5647692395
> --
> 2.32.0
>
diff mbox series

Patch

diff --git a/drivers/mmc/host/sdhci-pci-o2micro.c b/drivers/mmc/host/sdhci-pci-o2micro.c
index 92c20cb8074a..0d4d343dbb77 100644
--- a/drivers/mmc/host/sdhci-pci-o2micro.c
+++ b/drivers/mmc/host/sdhci-pci-o2micro.c
@@ -152,6 +152,8 @@  static int sdhci_o2_get_cd(struct mmc_host *mmc)
 
 	if (!(sdhci_readw(host, O2_PLL_DLL_WDT_CONTROL1) & O2_PLL_LOCK_STATUS))
 		sdhci_o2_enable_internal_clock(host);
+	else
+		sdhci_o2_wait_card_detect_stable(host);
 
 	return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT);
 }