Loading drivers/mmc/host/sdhci-pci-core.c +24 −5 Original line number Diff line number Diff line Loading @@ -616,16 +616,12 @@ static int intel_select_drive_strength(struct mmc_card *card, return intel_host->drv_strength; } static int bxt_get_cd(struct mmc_host *mmc) static int sdhci_get_cd_nogpio(struct mmc_host *mmc) { int gpio_cd = mmc_gpio_get_cd(mmc); struct sdhci_host *host = mmc_priv(mmc); unsigned long flags; int ret = 0; if (!gpio_cd) return 0; spin_lock_irqsave(&host->lock, flags); if (host->flags & SDHCI_DEVICE_DEAD) Loading @@ -638,6 +634,21 @@ static int bxt_get_cd(struct mmc_host *mmc) return ret; } static int bxt_get_cd(struct mmc_host *mmc) { int gpio_cd = mmc_gpio_get_cd(mmc); if (!gpio_cd) return 0; return sdhci_get_cd_nogpio(mmc); } static int mrfld_get_cd(struct mmc_host *mmc) { return sdhci_get_cd_nogpio(mmc); } #define SDHCI_INTEL_PWR_TIMEOUT_CNT 20 #define SDHCI_INTEL_PWR_TIMEOUT_UDELAY 100 Loading Loading @@ -1341,6 +1352,14 @@ static int intel_mrfld_mmc_probe_slot(struct sdhci_pci_slot *slot) MMC_CAP_1_8V_DDR; break; case INTEL_MRFLD_SD: slot->cd_idx = 0; slot->cd_override_level = true; /* * There are two PCB designs of SD card slot with the opposite * card detection sense. Quirk this out by ignoring GPIO state * completely in the custom ->get_cd() callback. */ slot->host->mmc_host_ops.get_cd = mrfld_get_cd; slot->host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V; break; case INTEL_MRFLD_SDIO: Loading Loading
drivers/mmc/host/sdhci-pci-core.c +24 −5 Original line number Diff line number Diff line Loading @@ -616,16 +616,12 @@ static int intel_select_drive_strength(struct mmc_card *card, return intel_host->drv_strength; } static int bxt_get_cd(struct mmc_host *mmc) static int sdhci_get_cd_nogpio(struct mmc_host *mmc) { int gpio_cd = mmc_gpio_get_cd(mmc); struct sdhci_host *host = mmc_priv(mmc); unsigned long flags; int ret = 0; if (!gpio_cd) return 0; spin_lock_irqsave(&host->lock, flags); if (host->flags & SDHCI_DEVICE_DEAD) Loading @@ -638,6 +634,21 @@ static int bxt_get_cd(struct mmc_host *mmc) return ret; } static int bxt_get_cd(struct mmc_host *mmc) { int gpio_cd = mmc_gpio_get_cd(mmc); if (!gpio_cd) return 0; return sdhci_get_cd_nogpio(mmc); } static int mrfld_get_cd(struct mmc_host *mmc) { return sdhci_get_cd_nogpio(mmc); } #define SDHCI_INTEL_PWR_TIMEOUT_CNT 20 #define SDHCI_INTEL_PWR_TIMEOUT_UDELAY 100 Loading Loading @@ -1341,6 +1352,14 @@ static int intel_mrfld_mmc_probe_slot(struct sdhci_pci_slot *slot) MMC_CAP_1_8V_DDR; break; case INTEL_MRFLD_SD: slot->cd_idx = 0; slot->cd_override_level = true; /* * There are two PCB designs of SD card slot with the opposite * card detection sense. Quirk this out by ignoring GPIO state * completely in the custom ->get_cd() callback. */ slot->host->mmc_host_ops.get_cd = mrfld_get_cd; slot->host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V; break; case INTEL_MRFLD_SDIO: Loading