]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00234933 mmc: sdhci: invalid cd_gpio for always_present host controller
authorRyan QIAN <b32804@freescale.com>
Tue, 27 Nov 2012 23:54:32 +0000 (07:54 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:46 +0000 (08:35 +0200)
Issue:
By default, cd_gpio is 0 for always presented host controller, which is a
valid gpio. Then it will result to free_irq for 0 in esdhc_pltfm_exit for
these always_present host controllers.

Fix:
Invalid cd_gpio if the controller is indicated to be always present.

Acked-by: Dong Aisheng <b29396@freescale.com>
Signed-off-by: Ryan QIAN <b32804@freescale.com>
drivers/mmc/host/sdhci-esdhc-imx.c

index 59cc92ce7410517a524e732e02f07fcd6d7959cd..35fd825f47093f3b3a16e4ed5a5cd4e0c429e5c4 100644 (file)
@@ -881,6 +881,8 @@ static int esdhc_pltfm_init(struct sdhci_host *host, struct sdhci_pltfm_data *pd
                if (boarddata->always_present) {
                        /* remove BROKEN_CD to disable card polling */
                        host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
+                       /* if it is always present, invalid cd_gpio */
+                       boarddata->cd_gpio = ARCH_NR_GPIOS + 1;
                        if (host->clk_mgr_en)
                                clk_disable(pltfm_host->clk);
                        return 0;