linux/drivers/mmc/host
Hans de Goede 22d04790d6 mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
commit 431946c0f6 upstream.

The card-detect GPIO for the microSD slot on Asus T100TA / T100TAM models
stopped working under Linux after commit 6fd03f0248 ("gpiolib: acpi:
support bias pull disable").

The GPIO in question is connected to a mechanical switch in the slot
which shorts the pin to GND when a card is inserted.

The GPIO pin correctly gets configured with a 20K pull-up by the BIOS,
but there is a bug in the DSDT where the GpioInt for the card-detect is
configured with a PullNone setting:

    GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
        "\\_SB.GPO0", 0x00, ResourceConsumer, ,
        )
        {   // Pin list
        0x0026
        }

Linux now actually honors the PullNone setting and disables the 20K pull-up
configured by the BIOS.

Add a new DMI_QUIRK_SD_CD_ENABLE_PULL_UP quirk which when set calls
mmc_gpiod_set_cd_config() to re-enable the pull-up and set this for
the Asus T100TA models to fix this.

Fixes: 6fd03f0248 ("gpiolib: acpi: support bias pull disable")
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240410191639.526324-7-hdegoede@redhat.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-06-16 13:47:37 +02:00
..
alcor.c mmc: alcor: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
atmel-mci.c mmc: atmel-mci: Move card detect gpio polarity quirk to gpiolib 2023-08-25 13:40:21 +02:00
au1xmmc.c mmc: au1xmmc: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
bcm2835.c mmc: bcm2835: Convert to platform remove callback returning void 2023-08-15 12:45:03 +02:00
cavium-octeon.c mmc: cavium-octeon: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
cavium-thunderx.c mmc: Explicitly include correct DT includes 2023-08-09 13:21:48 +02:00
cavium.c mmc: cavium: Use '"%s...", __func__' to print function name 2021-03-30 11:42:06 +02:00
cavium.h
cb710-mmc.c mmc: cb710: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
cb710-mmc.h
cqhci-core.c mmc: cqhci: Fix task clearing in CQE error recovery 2023-12-08 08:52:16 +01:00
cqhci-crypto.c blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
cqhci-crypto.h mmc: core: Store pointer to bio_crypt_ctx in mmc_request 2021-08-24 10:15:32 +02:00
cqhci.h mmc: mtk-sd: reduce CIT for better performance 2023-06-12 15:20:08 +02:00
davinci_mmc.c mmc: davinci: Don't strip remove function when driver is builtin 2024-06-16 13:47:36 +02:00
dw_mmc-bluefield.c mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-exynos.c mmc: dw_mmc: exynos: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
dw_mmc-exynos.h
dw_mmc-hi3798cv200.c mmc: dw_mmc: hi3798cv200: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
dw_mmc-k3.c mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-pci.c
dw_mmc-pltfm.c mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-pltfm.h mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-rockchip.c mmc: dw_mmc: rockchip: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
dw_mmc-starfive.c mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc.c MMC core: 2022-12-13 13:41:26 -08:00
dw_mmc.h mmc: dw_mmc: Support setting f_min from host drivers 2022-03-07 12:56:38 +01:00
jz4740_mmc.c mmc: jz4740: Convert to platform remove callback returning void 2023-08-15 12:45:03 +02:00
Kconfig mmc: sdhci_omap: Fix TI SoC dependencies 2024-01-25 15:35:39 -08:00
litex_mmc.c mmc: litex_mmc: Convert to platform remove callback returning void 2023-08-15 12:45:03 +02:00
Makefile MMC core: 2023-02-27 09:47:26 -08:00
meson-gx-mmc.c mmc: meson-gx: Remove setting of CMD_CFG_ERROR 2023-11-28 17:19:59 +00:00
meson-mx-sdhc-clkc.c mmc: meson-mx-sdhc: Drop unused MESON_SDHC_NUM_BUILTIN_CLKS macro 2021-12-20 11:19:01 +01:00
meson-mx-sdhc-mmc.c mmc: meson-mx-sdhc: Fix initialization frozen issue 2024-01-10 17:17:01 +01:00
meson-mx-sdhc.h
meson-mx-sdio.c mmc: meson-mx-sdio: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
mmc_hsq.c mmc: mmc-hsq: Use fifo to dispatch mmc_request 2022-12-07 13:29:14 +01:00
mmc_hsq.h mmc: mmc-hsq: Use fifo to dispatch mmc_request 2022-12-07 13:29:14 +01:00
mmc_spi.c mmc: mmc_spi: remove custom DMA mapped buffers 2024-01-31 16:18:55 -08:00
mmci_qcom_dml.c
mmci_stm32_sdmmc.c mmc: mmci: stm32: fix DMA API overlapping mappings warning 2024-03-06 14:48:41 +00:00
mmci.c mmc: mmci: Improve ux500 debug prints 2023-08-09 13:21:47 +02:00
mmci.h mmc: mmci: Add support for SW busy-end timeouts 2023-06-22 11:06:37 +02:00
moxart-mmc.c mmc: moxart: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
mtk-sd.c mmc: mtk-sd: Use readl_poll_timeout_atomic in msdc_reset_hw 2023-09-26 16:47:44 +02:00
mvsdio.c mmc: mvsdio: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
mvsdio.h
mxcmmc.c mmc: mxcmmc: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
mxs-mmc.c mmc: mxs-mmc: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
of_mmc_spi.c mmc: mmc_spi: parse speed mode options 2022-04-26 14:05:19 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
omap.c mmc: omap: restore original power up/down steps 2024-04-17 11:19:26 +02:00
owl-mmc.c mmc: owl: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
pxamci.c mmc: pxamci: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
pxamci.h
renesas_sdhi_core.c mmc: renesas_sdhi: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
renesas_sdhi.h mmc: renesas_sdhi: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
rtsx_pci_sdmmc.c mmc: rtsx_pci: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
sdhci_am654.c mmc: sdhci_am654: Fix ITAPDLY for HS400 timing 2024-06-12 11:12:37 +02:00
sdhci_f_sdh30.c mmc: sdhci_f_sdh30: Use sdhci_pltfm_remove() 2023-08-15 13:35:27 +02:00
sdhci_f_sdh30.h mmc: f-sdh30: Add support for non-removable media 2022-12-07 13:22:36 +01:00
sdhci-acpi.c mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA 2024-06-16 13:47:37 +02:00
sdhci-bcm-kona.c mmc: sdhci-bcm-kona: Use sdhci_pltfm_remove() 2023-08-15 13:35:11 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Use sdhci_pltfm_remove() 2023-08-15 13:35:16 +02:00
sdhci-cadence.c mmc: sdhci-cadence: Use sdhci_pltfm_remove() 2023-08-15 13:35:20 +02:00
sdhci-cqhci.h mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI 2022-11-07 13:28:47 +01:00
sdhci-dove.c mmc: sdhci-dove: Use sdhci_pltfm_remove() 2023-08-15 13:35:24 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450 2023-08-18 11:14:13 +02:00
sdhci-esdhc-mcf.c mmc: sdhci-esdhc-mcf: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
sdhci-esdhc.h
sdhci-iproc.c mmc: sdhci-iproc: Use sdhci_pltfm_remove() 2023-08-15 13:35:32 +02:00
sdhci-milbeaut.c mmc: sdhci: milbeaut: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
sdhci-msm.c mmc: sdhci-msm: pervent access to suspended controller 2024-05-02 16:32:43 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Use sdhci_pltfm_remove() 2023-08-15 13:35:35 +02:00
sdhci-of-aspeed-test.c mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro 2022-07-11 17:13:32 -06:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: Convert to platform remove 2023-08-15 12:45:05 +02:00
sdhci-of-at91.c mmc: sdhci-of-at91: Use sdhci_pltfm_remove() 2023-08-15 13:35:39 +02:00
sdhci-of-dwcmshc.c sdhci-of-dwcmshc: disable PM runtime in dwcmshc_remove() 2024-04-03 15:28:56 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: Use sdhci_pltfm_remove() 2023-08-15 13:35:42 +02:00
sdhci-of-hlwd.c mmc: sdhci-pltfm: Rename sdhci_pltfm_register() 2023-08-15 13:36:02 +02:00
sdhci-of-sparx5.c mmc: sdhci-of-sparx5: Use sdhci_pltfm_remove() 2023-08-15 13:35:48 +02:00
sdhci-omap.c mmc: sdhci-omap: re-tuning is needed after a pm transition to support emmc HS200 mode 2024-04-03 15:28:56 +02:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci-pci-o2micro: add Bayhub new chip GG8 support for UHS-I 2023-08-11 12:30:54 +02:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Disable LPM during initialization 2023-12-08 08:52:15 +01:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Fix a warm reboot issue that disk can't be detected by BIOS 2024-02-23 09:25:13 +01:00
sdhci-pci.h mmc: sdhci-pci-o2micro: add Bayhub new chip GG8 support for UHS-I 2023-08-11 12:30:54 +02:00
sdhci-pic32.c mmc: sdhci-pic32: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
sdhci-pltfm.c mmc: sdhci-pltfm: Rename sdhci_pltfm_register() 2023-08-15 13:36:02 +02:00
sdhci-pltfm.h mmc: sdhci-pltfm: Rename sdhci_pltfm_register() 2023-08-15 13:36:02 +02:00
sdhci-pxav2.c mmc: sdhci-pxav2: Use sdhci_pltfm_remove() 2023-08-15 13:35:52 +02:00
sdhci-pxav3.c mmc: sdhci-pxav3: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
sdhci-s3c.c mmc: sdhci-s3c: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
sdhci-spear.c mmc: sdhci-spear: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
sdhci-sprd.c mmc: sdhci-sprd: Fix eMMC init failure after hw reset 2024-01-10 17:17:01 +01:00
sdhci-st.c mmc: sdhci-st: Use sdhci_pltfm_remove() 2023-08-15 13:35:56 +02:00
sdhci-tegra.c mmc: sdhci-tegra: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
sdhci-xenon-phy.c mmc: sdhci-xenon: fix PHY init clock stability 2024-03-06 14:48:41 +00:00
sdhci-xenon.c mmc: xenon: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
sdhci-xenon.h
sdhci.c mmc: sdhci: Add support for "Tuning Error" interrupts 2024-06-16 13:47:36 +02:00
sdhci.h mmc: sdhci: Add support for "Tuning Error" interrupts 2024-06-16 13:47:36 +02:00
sdricoh_cs.c mmc: sdricoh_cs: remove unused sdricoh_readw function 2023-03-24 16:48:01 +01:00
sh_mmcif.c mmc: sh_mmcif: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
sunplus-mmc.c mmc: sunplus-mmc: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
sunxi-mmc.c mmc: sunxi: Convert to platform remove callback returning void 2023-08-15 12:45:03 +02:00
tifm_sd.c mmc: tifm_sd: Replace kmap_atomic() with kmap_local_page() 2022-12-07 13:22:32 +01:00
tmio_mmc_core.c mmc: tmio: avoid concurrent runs of mmc_request_done() 2024-04-03 15:28:25 +02:00
tmio_mmc.h mmc: tmio: remove tmio_mmc_k(un)map_atomic helpers 2022-12-07 13:22:36 +01:00
toshsd.c mmc: toshsd: fix return value check of mmc_add_host() 2022-12-07 13:22:34 +01:00
toshsd.h
uniphier-sd.c mmc: uniphier-sd: Convert to platform remove callback returning void 2023-08-15 12:48:21 +02:00
usdhi6rol0.c mmc: usdhi60rol0: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
ushc.c
via-sdmmc.c mmc: remove unnecessary set_drvdata() function 2023-08-09 15:44:17 +02:00
vub300.c mmc: vub300: fix an error code 2023-11-28 17:20:01 +00:00
wbsd.c mmc: wbsd: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function 2024-03-26 18:19:36 -04:00