}
 }
 
+static void msdc_cqe_pre_enable(struct mmc_host *mmc)
+{
+       struct cqhci_host *cq_host = mmc->cqe_private;
+       u32 reg;
+
+       reg = cqhci_readl(cq_host, CQHCI_CFG);
+       reg |= CQHCI_ENABLE;
+       cqhci_writel(cq_host, reg, CQHCI_CFG);
+}
+
+static void msdc_cqe_post_disable(struct mmc_host *mmc)
+{
+       struct cqhci_host *cq_host = mmc->cqe_private;
+       u32 reg;
+
+       reg = cqhci_readl(cq_host, CQHCI_CFG);
+       reg &= ~CQHCI_ENABLE;
+       cqhci_writel(cq_host, reg, CQHCI_CFG);
+}
+
 static const struct mmc_host_ops mt_msdc_ops = {
        .post_req = msdc_post_req,
        .pre_req = msdc_pre_req,
 static const struct cqhci_host_ops msdc_cmdq_ops = {
        .enable         = msdc_cqe_enable,
        .disable        = msdc_cqe_disable,
+       .pre_enable = msdc_cqe_pre_enable,
+       .post_disable = msdc_cqe_post_disable,
 };
 
 static void msdc_of_property_parse(struct platform_device *pdev,