diff options
author | Mayuresh Kulkarni <mkulkarni@nvidia.com> | 2011-08-24 13:57:31 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-08-24 17:32:46 -0700 |
commit | 56d91aea21041b154160b3bd79f33b6156f2ffbe (patch) | |
tree | e639e9a51bd8a3a496da7c196012ecc4789ecdd5 /drivers/mmc/host/sdhci-tegra.c | |
parent | ee46f384a1ff629dd488b55be1b5b8788aa4b48d (diff) |
arm: tegra: sdhci: enable quirk SDHCI_QUIRK_BROKEN_CARD_DETECTION
this also needs to be enabled for sdhci-tegra on Tegra2
for bug 866201
Change-Id: Id31eaa6d1b349bbcb9bd229ede378e55c44021ce
Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Reviewed-on: http://git-master/r/48898
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/mmc/host/sdhci-tegra.c')
-rw-r--r-- | drivers/mmc/host/sdhci-tegra.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index ce68286e09c3..4a23d6f5fdf5 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -390,10 +390,8 @@ static int __devinit tegra_sdhci_probe(struct platform_device *pdev) SDHCI_QUIRK_BROKEN_CTRL_HISPD | SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | - SDHCI_QUIRK_RUNTIME_DISABLE; -#ifndef CONFIG_ARCH_TEGRA_2x_SOC - sdhci->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION; -#endif + SDHCI_QUIRK_RUNTIME_DISABLE | + SDHCI_QUIRK_BROKEN_CARD_DETECTION; if (plat->is_8bit_supported) sdhci->quirks |= SDHCI_QUIRK_8_BIT_DATA; @@ -496,7 +494,6 @@ static int tegra_sdhci_remove(struct platform_device *pdev) #ifdef CONFIG_PM - static void tegra_sdhci_restore_interrupts(struct sdhci_host *sdhost) { u32 ierr; @@ -561,9 +558,8 @@ static int tegra_sdhci_suspend(struct platform_device *pdev, pm_message_t state) u16 clk; unsigned int clock = 100000; - if (device_may_wakeup(&pdev->dev)) { - enable_irq_wake(host->sdhci->irq); - } + if (device_may_wakeup(&pdev->dev)) + enable_irq_wake(host->sdhci->irq); /* save interrupt status before suspending */ host->sdhci_ints = sdhci_readl(host->sdhci, SDHCI_INT_ENABLE); @@ -585,7 +581,6 @@ static int tegra_sdhci_suspend(struct platform_device *pdev, pm_message_t state) return ret; } - ret = sdhci_suspend_host(host->sdhci, state); if (ret) pr_err("%s: failed, error = %d\n", __func__, ret); @@ -603,14 +598,13 @@ static int tegra_sdhci_suspend(struct platform_device *pdev, pm_message_t state) static int tegra_sdhci_resume(struct platform_device *pdev) { struct tegra_sdhci_host *host = platform_get_drvdata(pdev); - int ret; + int ret = 0; if (host->card_always_on && is_card_sdio(host->sdhci->mmc->card)) { int ret = 0; - if (device_may_wakeup(&pdev->dev)) { - disable_irq_wake(host->sdhci->irq); - } + if (device_may_wakeup(&pdev->dev)) + disable_irq_wake(host->sdhci->irq); /* soft reset SD host controller and enable interrupts */ ret = tegra_sdhci_restore(host->sdhci); |