From: Vikram Pandita <vikram.pandita@xxxxxx> If the dpll is already locked, code can be optimized to return much earlier than doing redundent set of lock mode and wait on idlest. Signed-off-by: Vikram Pandita <vikram.pandita@xxxxxx> Cc: Rajendra Nayak <rnayak@xxxxxx> --- arch/arm/mach-omap2/dpll3xxx.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index f77022b..d100391 100644 --- a/arch/arm/mach-omap2/dpll3xxx.c +++ b/arch/arm/mach-omap2/dpll3xxx.c @@ -135,8 +135,9 @@ static u16 _omap3_dpll_compute_freqsel(struct clk *clk, u8 n) */ static int _omap3_noncore_dpll_lock(struct clk *clk) { + const struct dpll_data *dd; u8 ai; - int r; + int r = 0; pr_debug("clock: locking DPLL %s\n", clk->name); @@ -144,10 +145,16 @@ static int _omap3_noncore_dpll_lock(struct clk *clk) omap3_dpll_deny_idle(clk); + dd = clk->dpll_data; + /* Check if already locked */ + if ((__raw_readl(dd->idlest_reg) & dd->idlest_mask) == 1) + goto done; + _omap3_dpll_write_clken(clk, DPLL_LOCKED); r = _omap3_wait_dpll_status(clk, 1); +done: if (ai) omap3_dpll_allow_idle(clk); -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html