diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2019-12-18 14:44:24 +0100 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2019-12-18 14:44:24 +0100 |
commit | d0b75c9169fd818979d7122eaff9c3ff20128b7a (patch) | |
tree | 13c362d1c06017157a62455a1a8fd1322d3e0f41 /drivers/mmc/host/sdhci-pci-core.c | |
parent | 66a83feb59d960cb4df99c54266f07dc92bf60d0 (diff) | |
parent | 75d27ea1abf7af3cc2cdec3513e74f52191605c8 (diff) | |
download | linux-d0b75c9169fd818979d7122eaff9c3ff20128b7a.tar.gz linux-d0b75c9169fd818979d7122eaff9c3ff20128b7a.tar.bz2 linux-d0b75c9169fd818979d7122eaff9c3ff20128b7a.zip |
Merge branch 'fixes' into next
Diffstat (limited to 'drivers/mmc/host/sdhci-pci-core.c')
-rw-r--r-- | drivers/mmc/host/sdhci-pci-core.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c index 53496111883d..525de2454a4d 100644 --- a/drivers/mmc/host/sdhci-pci-core.c +++ b/drivers/mmc/host/sdhci-pci-core.c @@ -27,6 +27,7 @@ #include <linux/mmc/slot-gpio.h> #include <linux/mmc/sdhci-pci-data.h> #include <linux/acpi.h> +#include <linux/dmi.h> #ifdef CONFIG_X86 #include <asm/iosf_mbi.h> @@ -783,11 +784,18 @@ static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot) return 0; } +static bool glk_broken_cqhci(struct sdhci_pci_slot *slot) +{ + return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC && + dmi_match(DMI_BIOS_VENDOR, "LENOVO"); +} + static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot) { int ret = byt_emmc_probe_slot(slot); - slot->host->mmc->caps2 |= MMC_CAP2_CQE; + if (!glk_broken_cqhci(slot)) + slot->host->mmc->caps2 |= MMC_CAP2_CQE; if (slot->chip->pdev->device != PCI_DEVICE_ID_INTEL_GLK_EMMC) { slot->host->mmc->caps2 |= MMC_CAP2_HS400_ES, |