OSDN Git Service

soc/tegra: pmc: Use existing pclk reference
authorThierry Reding <treding@nvidia.com>
Tue, 4 Aug 2015 13:25:03 +0000 (15:25 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 13 Aug 2015 14:49:58 +0000 (16:49 +0200)
The driver requests the pclk clock at probe time already and stores its
reference to it in struct tegra_pmc, so there is no need to look it up
everytime it is needed. Use the existing reference instead.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/pmc.c

index 0add311..bc34cf7 100644 (file)
@@ -459,7 +459,6 @@ static int tegra_io_rail_prepare(int id, unsigned long *request,
                                 unsigned long *status, unsigned int *bit)
 {
        unsigned long rate, value;
-       struct clk *clk;
 
        *bit = id % 32;
 
@@ -478,12 +477,7 @@ static int tegra_io_rail_prepare(int id, unsigned long *request,
                *request = IO_DPD2_REQ;
        }
 
-       clk = clk_get_sys(NULL, "pclk");
-       if (IS_ERR(clk))
-               return PTR_ERR(clk);
-
-       rate = clk_get_rate(clk);
-       clk_put(clk);
+       rate = clk_get_rate(pmc->clk);
 
        tegra_pmc_writel(DPD_SAMPLE_ENABLE, DPD_SAMPLE);
 
@@ -537,8 +531,10 @@ int tegra_io_rail_power_on(int id)
        tegra_pmc_writel(value, request);
 
        err = tegra_io_rail_poll(status, mask, 0, 250);
-       if (err < 0)
+       if (err < 0) {
+               pr_info("tegra_io_rail_poll() failed: %d\n", err);
                return err;
+       }
 
        tegra_io_rail_unprepare();
 
@@ -553,8 +549,10 @@ int tegra_io_rail_power_off(int id)
        int err;
 
        err = tegra_io_rail_prepare(id, &request, &status, &bit);
-       if (err < 0)
+       if (err < 0) {
+               pr_info("tegra_io_rail_prepare() failed: %d\n", err);
                return err;
+       }
 
        mask = 1 << bit;