From cc705faa5b9be2f7d8889759f5c3fc22c5cce448 Mon Sep 17 00:00:00 2001 From: Sayali Lokhande Date: Wed, 12 Jul 2017 09:22:38 +0530 Subject: [PATCH] mmc: sdhci: Enable CDR for cmdq mode From sdm660 onwards, the sdcc core will support CDR in CMDQ mode, so it needs to be enabled. This change is to enable CDR for cmdq mode. Change-Id: I64681a3c94b6bd4191337c5c014171ff32a7d3c1 Signed-off-by: Sayali Lokhande --- drivers/mmc/host/sdhci-msm.c | 4 +++- drivers/mmc/host/sdhci.c | 2 +- drivers/mmc/host/sdhci.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c index 7aefeb037ef4..08f9e86b90a9 100644 --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c @@ -4162,8 +4162,10 @@ static void sdhci_set_default_hw_caps(struct sdhci_msm_host *msm_host, /* keep track of the value in SDHCI_CAPABILITIES */ msm_host->caps_0 = caps; - if ((major == 1) && (minor >= 0x6b)) + if ((major == 1) && (minor >= 0x6b)) { msm_host->ice_hci_support = true; + host->cdr_support = true; + } } #ifdef CONFIG_MMC_CQ_HCI diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index a5ff9f73dfbc..0033fea0a800 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -3633,7 +3633,7 @@ static void sdhci_cmdq_set_transfer_params(struct mmc_host *mmc) ctrl |= SDHCI_CTRL_ADMA32; sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); } - if (host->ops->toggle_cdr) + if (host->ops->toggle_cdr && !host->cdr_support) host->ops->toggle_cdr(host, false); } diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index 93129b26dc5e..300be7fd0f24 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h @@ -564,6 +564,7 @@ struct sdhci_host { bool runtime_suspended; /* Host is runtime suspended */ bool bus_on; /* Bus power prevents runtime suspend */ bool preset_enabled; /* Preset is enabled */ + bool cdr_support; struct mmc_request *mrq; /* Current request */ struct mmc_command *cmd; /* Current command */