mmc: fsl_esdhc: read register once for card inserted status
authorYangbo Lu <yangbo.lu@nxp.com>
Tue, 19 May 2020 03:06:43 +0000 (11:06 +0800)
committerPeng Fan <peng.fan@nxp.com>
Mon, 15 Jun 2020 01:45:22 +0000 (09:45 +0800)
No need to poll register for card inserted status.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
drivers/mmc/fsl_esdhc.c

index d5d955846cde964b028b2d1c24153dea13f34543..704407981beb016598ee36b98e9fde8052310216 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2007, 2010-2011 Freescale Semiconductor, Inc
- * Copyright 2019 NXP Semiconductors
+ * Copyright 2019-2020 NXP
  * Andy Fleming
  *
  * Based vaguely on the pxa mmc code:
@@ -630,16 +630,15 @@ static int esdhc_init_common(struct fsl_esdhc_priv *priv, struct mmc *mmc)
 static int esdhc_getcd_common(struct fsl_esdhc_priv *priv)
 {
        struct fsl_esdhc *regs = priv->esdhc_regs;
-       int timeout = 1000;
 
 #ifdef CONFIG_ESDHC_DETECT_QUIRK
        if (CONFIG_ESDHC_DETECT_QUIRK)
                return 1;
 #endif
-       while (!(esdhc_read32(&regs->prsstat) & PRSSTAT_CINS) && --timeout)
-               udelay(1000);
+       if (esdhc_read32(&regs->prsstat) & PRSSTAT_CINS)
+               return 1;
 
-       return timeout > 0;
+       return 0;
 }
 
 static void fsl_esdhc_get_cfg_common(struct fsl_esdhc_priv *priv,