Commit 3932afd5 authored by Ulf Hansson's avatar Ulf Hansson Committed by Chris Ball

mmc: omap: Remove redundant suspend and resume callbacks

Suspend and resume of cards are handled by the protocol layer and
consequently the mmc_suspend|resume_host APIs are marked as deprecated.

While moving away from using the deprecated APIs, there are nothing
left to be done for the suspend and resume callbacks, so remove them.

Cc: Jarkko Lavinen <jarkko.lavinen@nokia.com>
Cc: linux-omap@vger.kernel.org
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent ccbd4830
...@@ -128,7 +128,6 @@ struct mmc_omap_slot { ...@@ -128,7 +128,6 @@ struct mmc_omap_slot {
struct mmc_omap_host { struct mmc_omap_host {
int initialized; int initialized;
int suspended;
struct mmc_request * mrq; struct mmc_request * mrq;
struct mmc_command * cmd; struct mmc_command * cmd;
struct mmc_data * data; struct mmc_data * data;
...@@ -1513,61 +1512,9 @@ static int mmc_omap_remove(struct platform_device *pdev) ...@@ -1513,61 +1512,9 @@ static int mmc_omap_remove(struct platform_device *pdev)
return 0; return 0;
} }
#ifdef CONFIG_PM
static int mmc_omap_suspend(struct platform_device *pdev, pm_message_t mesg)
{
int i, ret = 0;
struct mmc_omap_host *host = platform_get_drvdata(pdev);
if (host == NULL || host->suspended)
return 0;
for (i = 0; i < host->nr_slots; i++) {
struct mmc_omap_slot *slot;
slot = host->slots[i];
ret = mmc_suspend_host(slot->mmc);
if (ret < 0) {
while (--i >= 0) {
slot = host->slots[i];
mmc_resume_host(slot->mmc);
}
return ret;
}
}
host->suspended = 1;
return 0;
}
static int mmc_omap_resume(struct platform_device *pdev)
{
int i, ret = 0;
struct mmc_omap_host *host = platform_get_drvdata(pdev);
if (host == NULL || !host->suspended)
return 0;
for (i = 0; i < host->nr_slots; i++) {
struct mmc_omap_slot *slot;
slot = host->slots[i];
ret = mmc_resume_host(slot->mmc);
if (ret < 0)
return ret;
host->suspended = 0;
}
return 0;
}
#else
#define mmc_omap_suspend NULL
#define mmc_omap_resume NULL
#endif
static struct platform_driver mmc_omap_driver = { static struct platform_driver mmc_omap_driver = {
.probe = mmc_omap_probe, .probe = mmc_omap_probe,
.remove = mmc_omap_remove, .remove = mmc_omap_remove,
.suspend = mmc_omap_suspend,
.resume = mmc_omap_resume,
.driver = { .driver = {
.name = DRIVER_NAME, .name = DRIVER_NAME,
.owner = THIS_MODULE, .owner = THIS_MODULE,
......
...@@ -1171,9 +1171,6 @@ static irqreturn_t omap_hsmmc_detect(int irq, void *dev_id) ...@@ -1171,9 +1171,6 @@ static irqreturn_t omap_hsmmc_detect(int irq, void *dev_id)
struct omap_mmc_slot_data *slot = &mmc_slot(host); struct omap_mmc_slot_data *slot = &mmc_slot(host);
int carddetect; int carddetect;
if (host->suspended)
return IRQ_HANDLED;
sysfs_notify(&host->mmc->class_dev.kobj, NULL, "cover_switch"); sysfs_notify(&host->mmc->class_dev.kobj, NULL, "cover_switch");
if (slot->card_detect) if (slot->card_detect)
...@@ -1632,11 +1629,6 @@ static int omap_hsmmc_regs_show(struct seq_file *s, void *data) ...@@ -1632,11 +1629,6 @@ static int omap_hsmmc_regs_show(struct seq_file *s, void *data)
seq_printf(s, "mmc%d:\n ctx_loss:\t%d\n\nregs:\n", seq_printf(s, "mmc%d:\n ctx_loss:\t%d\n\nregs:\n",
mmc->index, host->context_loss); mmc->index, host->context_loss);
if (host->suspended) {
seq_printf(s, "host suspended, can't read registers\n");
return 0;
}
pm_runtime_get_sync(host->dev); pm_runtime_get_sync(host->dev);
seq_printf(s, "CON:\t\t0x%08x\n", seq_printf(s, "CON:\t\t0x%08x\n",
...@@ -2101,23 +2093,12 @@ static void omap_hsmmc_complete(struct device *dev) ...@@ -2101,23 +2093,12 @@ static void omap_hsmmc_complete(struct device *dev)
static int omap_hsmmc_suspend(struct device *dev) static int omap_hsmmc_suspend(struct device *dev)
{ {
int ret = 0;
struct omap_hsmmc_host *host = dev_get_drvdata(dev); struct omap_hsmmc_host *host = dev_get_drvdata(dev);
if (!host) if (!host)
return 0; return 0;
if (host && host->suspended)
return 0;
pm_runtime_get_sync(host->dev); pm_runtime_get_sync(host->dev);
host->suspended = 1;
ret = mmc_suspend_host(host->mmc);
if (ret) {
host->suspended = 0;
goto err;
}
if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER)) { if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER)) {
omap_hsmmc_disable_irq(host); omap_hsmmc_disable_irq(host);
...@@ -2127,23 +2108,19 @@ static int omap_hsmmc_suspend(struct device *dev) ...@@ -2127,23 +2108,19 @@ static int omap_hsmmc_suspend(struct device *dev)
if (host->dbclk) if (host->dbclk)
clk_disable_unprepare(host->dbclk); clk_disable_unprepare(host->dbclk);
err:
pm_runtime_put_sync(host->dev); pm_runtime_put_sync(host->dev);
return ret; return 0;
} }
/* Routine to resume the MMC device */ /* Routine to resume the MMC device */
static int omap_hsmmc_resume(struct device *dev) static int omap_hsmmc_resume(struct device *dev)
{ {
int ret = 0;
struct omap_hsmmc_host *host = dev_get_drvdata(dev); struct omap_hsmmc_host *host = dev_get_drvdata(dev);
if (!host) if (!host)
return 0; return 0;
if (host && !host->suspended)
return 0;
pm_runtime_get_sync(host->dev); pm_runtime_get_sync(host->dev);
if (host->dbclk) if (host->dbclk)
...@@ -2154,16 +2131,9 @@ static int omap_hsmmc_resume(struct device *dev) ...@@ -2154,16 +2131,9 @@ static int omap_hsmmc_resume(struct device *dev)
omap_hsmmc_protect_card(host); omap_hsmmc_protect_card(host);
/* Notify the core to resume the host */
ret = mmc_resume_host(host->mmc);
if (ret == 0)
host->suspended = 0;
pm_runtime_mark_last_busy(host->dev); pm_runtime_mark_last_busy(host->dev);
pm_runtime_put_autosuspend(host->dev); pm_runtime_put_autosuspend(host->dev);
return 0;
return ret;
} }
#else #else
......
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