aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2014-12-01 08:51:17 -0500
committerUlf Hansson <ulf.hansson@linaro.org>2014-12-02 06:25:29 -0500
commite1f5633ad4ddcef37a6dc9a5a64159978c0f7a22 (patch)
treed96ec09aa14b69b804c296b7eecda106b96d5d3f /drivers/mmc
parentdb6e8cdfcde84be556baa6d6b2424668ca21a36c (diff)
mmc: sdhci-acpi: Add SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC
SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC actually causes standard-compliant behaviour by causing the flagging of the last DMA transfer descriptor as the end instead of there being an additional nop descriptor which is flagged as the end. Consequently, it is better to have the quirk. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci-acpi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index 310976307954..de67ae60d1b3 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -206,12 +206,14 @@ static const struct sdhci_acpi_slot sdhci_acpi_slot_int_emmc = {
206 MMC_CAP_HW_RESET | MMC_CAP_1_8V_DDR, 206 MMC_CAP_HW_RESET | MMC_CAP_1_8V_DDR,
207 .caps2 = MMC_CAP2_HC_ERASE_SZ, 207 .caps2 = MMC_CAP2_HC_ERASE_SZ,
208 .flags = SDHCI_ACPI_RUNTIME_PM, 208 .flags = SDHCI_ACPI_RUNTIME_PM,
209 .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
209 .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | SDHCI_QUIRK2_STOP_WITH_TC, 210 .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | SDHCI_QUIRK2_STOP_WITH_TC,
210 .probe_slot = sdhci_acpi_emmc_probe_slot, 211 .probe_slot = sdhci_acpi_emmc_probe_slot,
211}; 212};
212 213
213static const struct sdhci_acpi_slot sdhci_acpi_slot_int_sdio = { 214static const struct sdhci_acpi_slot sdhci_acpi_slot_int_sdio = {
214 .quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION, 215 .quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
216 SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
215 .quirks2 = SDHCI_QUIRK2_HOST_OFF_CARD_ON, 217 .quirks2 = SDHCI_QUIRK2_HOST_OFF_CARD_ON,
216 .caps = MMC_CAP_NONREMOVABLE | MMC_CAP_POWER_OFF_CARD, 218 .caps = MMC_CAP_NONREMOVABLE | MMC_CAP_POWER_OFF_CARD,
217 .flags = SDHCI_ACPI_RUNTIME_PM, 219 .flags = SDHCI_ACPI_RUNTIME_PM,
@@ -222,6 +224,7 @@ static const struct sdhci_acpi_slot sdhci_acpi_slot_int_sdio = {
222static const struct sdhci_acpi_slot sdhci_acpi_slot_int_sd = { 224static const struct sdhci_acpi_slot sdhci_acpi_slot_int_sd = {
223 .flags = SDHCI_ACPI_SD_CD | SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL | 225 .flags = SDHCI_ACPI_SD_CD | SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL |
224 SDHCI_ACPI_RUNTIME_PM, 226 SDHCI_ACPI_RUNTIME_PM,
227 .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
225 .quirks2 = SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON | 228 .quirks2 = SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON |
226 SDHCI_QUIRK2_STOP_WITH_TC, 229 SDHCI_QUIRK2_STOP_WITH_TC,
227 .probe_slot = sdhci_acpi_sd_probe_slot, 230 .probe_slot = sdhci_acpi_sd_probe_slot,