|
@@ -170,7 +170,6 @@ struct omap_hsmmc_host {
|
|
|
int use_dma, dma_ch;
|
|
|
int dma_line_tx, dma_line_rx;
|
|
|
int slot_id;
|
|
|
- int got_dbclk;
|
|
|
int response_busy;
|
|
|
int context_loss;
|
|
|
int vdd;
|
|
@@ -1097,7 +1096,7 @@ static int omap_hsmmc_switch_opcond(struct omap_hsmmc_host *host, int vdd)
|
|
|
|
|
|
/* Disable the clocks */
|
|
|
pm_runtime_put_sync(host->dev);
|
|
|
- if (host->got_dbclk)
|
|
|
+ if (host->dbclk)
|
|
|
clk_disable(host->dbclk);
|
|
|
|
|
|
/* Turn the power off */
|
|
@@ -1108,7 +1107,7 @@ static int omap_hsmmc_switch_opcond(struct omap_hsmmc_host *host, int vdd)
|
|
|
ret = mmc_slot(host).set_power(host->dev, host->slot_id, 1,
|
|
|
vdd);
|
|
|
pm_runtime_get_sync(host->dev);
|
|
|
- if (host->got_dbclk)
|
|
|
+ if (host->dbclk)
|
|
|
clk_enable(host->dbclk);
|
|
|
|
|
|
if (ret != 0)
|
|
@@ -1902,21 +1901,17 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev)
|
|
|
|
|
|
omap_hsmmc_context_save(host);
|
|
|
|
|
|
- if (cpu_is_omap2430()) {
|
|
|
- host->dbclk = clk_get(&pdev->dev, "mmchsdb_fck");
|
|
|
- /*
|
|
|
- * MMC can still work without debounce clock.
|
|
|
- */
|
|
|
- if (IS_ERR(host->dbclk))
|
|
|
- dev_warn(mmc_dev(host->mmc),
|
|
|
- "Failed to get debounce clock\n");
|
|
|
- else
|
|
|
- host->got_dbclk = 1;
|
|
|
-
|
|
|
- if (host->got_dbclk)
|
|
|
- if (clk_enable(host->dbclk) != 0)
|
|
|
- dev_dbg(mmc_dev(host->mmc), "Enabling debounce"
|
|
|
- " clk failed\n");
|
|
|
+ host->dbclk = clk_get(&pdev->dev, "mmchsdb_fck");
|
|
|
+ /*
|
|
|
+ * MMC can still work without debounce clock.
|
|
|
+ */
|
|
|
+ if (IS_ERR(host->dbclk)) {
|
|
|
+ dev_warn(mmc_dev(host->mmc), "Failed to get debounce clk\n");
|
|
|
+ host->dbclk = NULL;
|
|
|
+ } else if (clk_enable(host->dbclk) != 0) {
|
|
|
+ dev_warn(mmc_dev(host->mmc), "Failed to enable debounce clk\n");
|
|
|
+ clk_put(host->dbclk);
|
|
|
+ host->dbclk = NULL;
|
|
|
}
|
|
|
|
|
|
/* Since we do only SG emulation, we can have as many segs
|
|
@@ -2036,7 +2031,7 @@ err_irq:
|
|
|
pm_runtime_put_sync(host->dev);
|
|
|
pm_runtime_disable(host->dev);
|
|
|
clk_put(host->fclk);
|
|
|
- if (host->got_dbclk) {
|
|
|
+ if (host->dbclk) {
|
|
|
clk_disable(host->dbclk);
|
|
|
clk_put(host->dbclk);
|
|
|
}
|
|
@@ -2069,7 +2064,7 @@ static int __devexit omap_hsmmc_remove(struct platform_device *pdev)
|
|
|
pm_runtime_put_sync(host->dev);
|
|
|
pm_runtime_disable(host->dev);
|
|
|
clk_put(host->fclk);
|
|
|
- if (host->got_dbclk) {
|
|
|
+ if (host->dbclk) {
|
|
|
clk_disable(host->dbclk);
|
|
|
clk_put(host->dbclk);
|
|
|
}
|
|
@@ -2127,7 +2122,7 @@ static int omap_hsmmc_suspend(struct device *dev)
|
|
|
OMAP_HSMMC_READ(host->base, HCTL) & ~SDBP);
|
|
|
}
|
|
|
|
|
|
- if (host->got_dbclk)
|
|
|
+ if (host->dbclk)
|
|
|
clk_disable(host->dbclk);
|
|
|
err:
|
|
|
pm_runtime_put_sync(host->dev);
|
|
@@ -2148,7 +2143,7 @@ static int omap_hsmmc_resume(struct device *dev)
|
|
|
|
|
|
pm_runtime_get_sync(host->dev);
|
|
|
|
|
|
- if (host->got_dbclk)
|
|
|
+ if (host->dbclk)
|
|
|
clk_enable(host->dbclk);
|
|
|
|
|
|
if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER))
|