mmc: sdhci-omap: Disable data timeout interrupt during erase
authorFaiz Abbas <faiz_abbas@ti.com>
Thu, 16 Jan 2020 10:51:51 +0000 (16:21 +0530)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 20 Jan 2020 09:36:11 +0000 (10:36 +0100)
Disable data timeout interrupt during an erase operation.

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/20200116105154.7685-8-faiz_abbas@ti.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-omap.c

index 84d85aa743da53db5792e3275c5b92e36e70970e..1f05c8e98d621208a318904930b579f8b0b6924b 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include <linux/delay.h>
+#include <linux/mmc/mmc.h>
 #include <linux/mmc/slot-gpio.h>
 #include <linux/module.h>
 #include <linux/of.h>
@@ -827,6 +828,15 @@ static u32 sdhci_omap_irq(struct sdhci_host *host, u32 intmask)
        return intmask;
 }
 
+static void sdhci_omap_set_timeout(struct sdhci_host *host,
+                                  struct mmc_command *cmd)
+{
+       if (cmd->opcode == MMC_ERASE)
+               sdhci_set_data_timeout_irq(host, false);
+
+       __sdhci_set_timeout(host, cmd);
+}
+
 static struct sdhci_ops sdhci_omap_ops = {
        .set_clock = sdhci_omap_set_clock,
        .set_power = sdhci_omap_set_power,
@@ -838,6 +848,7 @@ static struct sdhci_ops sdhci_omap_ops = {
        .reset = sdhci_omap_reset,
        .set_uhs_signaling = sdhci_omap_set_uhs_signaling,
        .irq = sdhci_omap_irq,
+       .set_timeout = sdhci_omap_set_timeout,
 };
 
 static int sdhci_omap_set_capabilities(struct sdhci_omap_host *omap_host)