Due to HW issue, SDHCI host controller on Intel
Baytrail/Merrifield platforms can not use preset
register. So, disable preset registers for them by quirks.

Signed-off-by: Yunpeng Gao <yunpeng....@intel.com>
Signed-off-by: Chuanxiao Dong <chuanxiao.d...@intel.com>
---
 drivers/mmc/host/sdhci-pci.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
index ff9ab62..580073b 100644
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
@@ -287,13 +287,15 @@ static const struct sdhci_pci_fixes sdhci_intel_byt_emmc 
= {
 };
 
 static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = {
-       .quirks2        = SDHCI_QUIRK2_HOST_OFF_CARD_ON,
+       .quirks2        = SDHCI_QUIRK2_HOST_OFF_CARD_ON |
+                       SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
        .allow_runtime_pm = true,
        .probe_slot     = byt_sdio_probe_slot,
 };
 
 static const struct sdhci_pci_fixes sdhci_intel_byt_sd = {
-       .quirks2        = SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON,
+       .quirks2        = SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON |
+                       SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
        .allow_runtime_pm = true,
        .own_cd_for_runtime_pm = true,
 };
@@ -317,7 +319,8 @@ static int intel_mrfl_mmc_probe_slot(struct sdhci_pci_slot 
*slot)
 
 static const struct sdhci_pci_fixes sdhci_intel_mrfl_mmc = {
        .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
-       .quirks2        = SDHCI_QUIRK2_BROKEN_HS200,
+       .quirks2        = SDHCI_QUIRK2_BROKEN_HS200 |
+                       SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
        .allow_runtime_pm = true,
        .probe_slot     = intel_mrfl_mmc_probe_slot,
 };
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to