mmc: omap_hsmmc: Cleanup use of cpu_is_* for debounce_clock
authorRajendra Nayak <rnayak@ti.com>
Mon, 9 Apr 2012 06:38:35 +0000 (12:08 +0530)
committerChris Ball <cjb@laptop.org>
Sun, 22 Apr 2012 15:16:53 +0000 (11:16 -0400)
There really does not seem to be a need to use cpu_is_* check for getting
the debounce clock as clkdev is perfectly capable of handling situations
when certain clocks are only available on select platforms.

Also get rid of the 'got_dbclk' flag and instead use the dbclk clock
pointer to know if a valid debounce clock exists for the platform.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Venkatraman S <svenkatr@ti.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/omap_hsmmc.c

index a5bca725e414c79983c5517ec6bd8a3951d05545..4254b6f310aaabeb970c6a4214dfca4311f1b9ff 100644 (file)
@@ -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))