static void local_pll_clk_disable(struct clk *c) { unsigned long flags; struct pll_clk *pll = to_pll_clk(c); spin_lock_irqsave(&pll_reg_lock, flags); __pll_clk_disable_reg(PLL_MODE_REG(pll)); spin_unlock_irqrestore(&pll_reg_lock, flags); }
static void local_pll_clk_disable(struct clk *c) { unsigned long flags; struct pll_clk *pll = to_pll_clk(c); /* * Disable the PLL output, disable test mode, enable * the bypass mode, and assert the reset. */ spin_lock_irqsave(&pll_reg_lock, flags); __pll_clk_disable_reg(PLL_MODE_REG(pll)); spin_unlock_irqrestore(&pll_reg_lock, flags); }
static void pll_clk_disable(struct clk *c) { struct pll_shared_clk *pll = to_pll_shared_clk(c); unsigned int pll_id = pll->id; remote_spin_lock(&pll_lock); pll_control->pll[PLL_BASE + pll_id].votes &= ~BIT(1); if (pll_control->pll[PLL_BASE + pll_id].on && !pll_control->pll[PLL_BASE + pll_id].votes) { __pll_clk_disable_reg(PLL_MODE_REG(pll)); pll_control->pll[PLL_BASE + pll_id].on = 0; } remote_spin_unlock(&pll_lock); }