Commit 8154b575 authored by Wolfram Sang's avatar Wolfram Sang Committed by Chris Ball

mmc: sdhci-tegra: free irq on error and remove

Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
Acked-by: default avatarOlof Johansson <olof@lixom.net>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent f53fbde4
...@@ -169,7 +169,7 @@ static int tegra_sdhci_pltfm_init(struct sdhci_host *host, ...@@ -169,7 +169,7 @@ static int tegra_sdhci_pltfm_init(struct sdhci_host *host,
if (rc) { if (rc) {
dev_err(mmc_dev(host->mmc), dev_err(mmc_dev(host->mmc),
"failed to allocate wp gpio\n"); "failed to allocate wp gpio\n");
goto out_cd; goto out_irq;
} }
tegra_gpio_enable(plat->wp_gpio); tegra_gpio_enable(plat->wp_gpio);
gpio_direction_input(plat->wp_gpio); gpio_direction_input(plat->wp_gpio);
...@@ -195,6 +195,9 @@ static int tegra_sdhci_pltfm_init(struct sdhci_host *host, ...@@ -195,6 +195,9 @@ static int tegra_sdhci_pltfm_init(struct sdhci_host *host,
gpio_free(plat->wp_gpio); gpio_free(plat->wp_gpio);
} }
out_irq:
if (gpio_is_valid(plat->cd_gpio))
free_irq(gpio_to_irq(plat->cd_gpio), host);
out_cd: out_cd:
if (gpio_is_valid(plat->cd_gpio)) { if (gpio_is_valid(plat->cd_gpio)) {
tegra_gpio_disable(plat->cd_gpio); tegra_gpio_disable(plat->cd_gpio);
...@@ -225,6 +228,7 @@ static void tegra_sdhci_pltfm_exit(struct sdhci_host *host) ...@@ -225,6 +228,7 @@ static void tegra_sdhci_pltfm_exit(struct sdhci_host *host)
} }
if (gpio_is_valid(plat->cd_gpio)) { if (gpio_is_valid(plat->cd_gpio)) {
free_irq(gpio_to_irq(plat->cd_gpio), host);
tegra_gpio_disable(plat->cd_gpio); tegra_gpio_disable(plat->cd_gpio);
gpio_free(plat->cd_gpio); gpio_free(plat->cd_gpio);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment