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 introduces two additional quirks (it's done this way due to patch 3, see below). Patch 2 is an actual fix for the mentioned platform. If backported need to be taken with patch 1 together. Patch 3 is (RFT) clean up. The questionable part here is the locking scheme. Shouldn't we do something similar in the generic IRQ handler of SDHCI? Or Broxton case has something quite different in mind? Patches 4-6 are dead-code removals. Patch 4 accompanying patch 2, patches 5-6 just similar to it, but (functionally) independent. Would like to hear if it's okay to do. Any comments, hints, advice are welcome! Andy Shevchenko (6): mmc: sdhci: Introduce couple of quirks to ignore particular state of CD GPIO mmc: sdhci-pci: Read card detect from ACPI for Intel Merrifield mmc: sdhci: Replace bxt_get_cd() with SDHCI_QUIRK_CARD_DETECTION_IF_GPIO_HIGH 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 | 24 +---- drivers/mmc/host/sdhci-pci-core.c | 166 +++-------------------------- drivers/mmc/host/sdhci-pci-data.c | 6 -- drivers/mmc/host/sdhci-pci.h | 5 - drivers/mmc/host/sdhci.c | 13 ++- drivers/mmc/host/sdhci.h | 4 + include/linux/mmc/sdhci-pci-data.h | 18 ---- 8 files changed, 27 insertions(+), 210 deletions(-) delete mode 100644 drivers/mmc/host/sdhci-pci-data.c delete mode 100644 include/linux/mmc/sdhci-pci-data.h -- 2.33.0