It appears that one of the supported platform magically worked with the custom IRQ handler (any hints how?) while having two PCB designs with an opposite CD sense level. Here is an attempt to fix it by quirking out CD GPIO. Patch 1 is an actual fix for the mentioned platform. Patch 2 is code deduplication to save few LOCs. Patch 3-6 are dead code removals. In v2: - redone fix to use ->get_cd() instead of quirks (Adrian) - due to above transformed previous clean up to the current patch 2 - added a new patch, i.e. patch 3 - added commit IDs to patch 4 (Adrian) - mentioned dependencies on previous patches in patch 5 and 6 (Adrian) Andy Shevchenko (6): mmc: sdhci-pci: Read card detect from ACPI for Intel Merrifield mmc: sdhci: Deduplicate sdhci_get_cd_nogpio() mmc: sdhci: Remove unused prototype declaration in the header mmc: sdhci-pci: Remove dead code (struct sdhci_pci_data et al) mmc: sdhci-pci: Remove dead code (cd_gpio, cd_irq et al) mmc: sdhci-pci: Remove dead code (rst_n_gpio et al) drivers/mmc/host/Makefile | 1 - drivers/mmc/host/sdhci-acpi.c | 14 +-- drivers/mmc/host/sdhci-pci-core.c | 159 ++++------------------------- drivers/mmc/host/sdhci-pci-data.c | 6 -- drivers/mmc/host/sdhci-pci.h | 5 - drivers/mmc/host/sdhci.c | 19 ++++ drivers/mmc/host/sdhci.h | 2 +- include/linux/mmc/sdhci-pci-data.h | 18 ---- 8 files changed, 39 insertions(+), 185 deletions(-) delete mode 100644 drivers/mmc/host/sdhci-pci-data.c delete mode 100644 include/linux/mmc/sdhci-pci-data.h -- 2.33.0