pr_debug("%s: supported caps: 0x%08x\n", mmc_hostname(mmc), caps);
 }
 
+static void sdhci_msm_reset(struct sdhci_host *host, u8 mask)
+{
+       if ((host->mmc->caps2 & MMC_CAP2_CQE) && (mask & SDHCI_RESET_ALL))
+               cqhci_deactivate(host->mmc);
+       sdhci_reset(host, mask);
+}
+
 static const struct sdhci_msm_variant_ops mci_var_ops = {
        .msm_readl_relaxed = sdhci_msm_mci_variant_readl_relaxed,
        .msm_writel_relaxed = sdhci_msm_mci_variant_writel_relaxed,
 MODULE_DEVICE_TABLE(of, sdhci_msm_dt_match);
 
 static const struct sdhci_ops sdhci_msm_ops = {
-       .reset = sdhci_reset,
+       .reset = sdhci_msm_reset,
        .set_clock = sdhci_msm_set_clock,
        .get_min_clock = sdhci_msm_get_min_clock,
        .get_max_clock = sdhci_msm_get_max_clock,