[PATCH] ARM: OMAP3+: DPLL: drop !CONFIG_COMMON_CLK sections
Mike Turquette
mturquette at ti.com
Mon Nov 12 17:30:07 EST 2012
Quoting Paul Walmsley (2012-11-12 13:50:53)
> Remove all of the code that is compiled when CONFIG_COMMON_CLK=n in the
> OMAP3+ DPLL handling code.
>
> Signed-off-by: Paul Walmsley <paul at pwsan.com>
> Cc: Mike Turquette <mturquette at ti.com>
> Cc: Rajendra Nayak <rnayak at ti.com>
Hmm, dpll3xxx.c fell through the cracks during #ifdef cleanup. Patch
looks good to me.
Regards,
Mike
> ---
>
> This will be merged as part of the OMAP CCF conversion set.
>
> arch/arm/mach-omap2/dpll3xxx.c | 231 +---------------------------------------
> 1 file changed, 3 insertions(+), 228 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c
> index f72dedb..fafb28c 100644
> --- a/arch/arm/mach-omap2/dpll3xxx.c
> +++ b/arch/arm/mach-omap2/dpll3xxx.c
> @@ -43,11 +43,7 @@
> /* Private functions */
>
> /* _omap3_dpll_write_clken - write clken_bits arg to a DPLL's enable bits */
> -#ifdef CONFIG_COMMON_CLK
> static void _omap3_dpll_write_clken(struct clk_hw_omap *clk, u8 clken_bits)
> -#else
> -static void _omap3_dpll_write_clken(struct clk *clk, u8 clken_bits)
> -#endif
> {
> const struct dpll_data *dd;
> u32 v;
> @@ -61,11 +57,7 @@ static void _omap3_dpll_write_clken(struct clk *clk, u8 clken_bits)
> }
>
> /* _omap3_wait_dpll_status: wait for a DPLL to enter a specific state */
> -#ifdef CONFIG_COMMON_CLK
> static int _omap3_wait_dpll_status(struct clk_hw_omap *clk, u8 state)
> -#else
> -static int _omap3_wait_dpll_status(struct clk *clk, u8 state)
> -#endif
> {
> const struct dpll_data *dd;
> int i = 0;
> @@ -73,11 +65,7 @@ static int _omap3_wait_dpll_status(struct clk *clk, u8 state)
> const char *clk_name;
>
> dd = clk->dpll_data;
> -#ifdef CONFIG_COMMON_CLK
> clk_name = __clk_get_name(clk->hw.clk);
> -#else
> - clk_name = __clk_get_name(clk);
> -#endif
>
> state <<= __ffs(dd->idlest_mask);
>
> @@ -101,11 +89,7 @@ static int _omap3_wait_dpll_status(struct clk *clk, u8 state)
> }
>
> /* From 3430 TRM ES2 4.7.6.2 */
> -#ifdef CONFIG_COMMON_CLK
> static u16 _omap3_dpll_compute_freqsel(struct clk_hw_omap *clk, u8 n)
> -#else
> -static u16 _omap3_dpll_compute_freqsel(struct clk *clk, u8 n)
> -#endif
> {
> unsigned long fint;
> u16 f = 0;
> @@ -150,22 +134,14 @@ static u16 _omap3_dpll_compute_freqsel(struct clk *clk, u8 n)
> * locked successfully, return 0; if the DPLL did not lock in the time
> * allotted, or DPLL3 was passed in, return -EINVAL.
> */
> -#ifdef CONFIG_COMMON_CLK
> static int _omap3_noncore_dpll_lock(struct clk_hw_omap *clk)
> -#else
> -static int _omap3_noncore_dpll_lock(struct clk *clk)
> -#endif
> {
> const struct dpll_data *dd;
> u8 ai;
> u8 state = 1;
> int r = 0;
>
> -#ifdef CONFIG_COMMON_CLK
> pr_debug("clock: locking DPLL %s\n", __clk_get_name(clk->hw.clk));
> -#else
> - pr_debug("clock: locking DPLL %s\n", __clk_get_name(clk));
> -#endif
>
> dd = clk->dpll_data;
> state <<= __ffs(dd->idlest_mask);
> @@ -203,11 +179,7 @@ done:
> * DPLL3 was passed in, or the DPLL does not support low-power bypass,
> * return -EINVAL.
> */
> -#ifdef CONFIG_COMMON_CLK
> static int _omap3_noncore_dpll_bypass(struct clk_hw_omap *clk)
> -#else
> -static int _omap3_noncore_dpll_bypass(struct clk *clk)
> -#endif
> {
> int r;
> u8 ai;
> @@ -216,11 +188,7 @@ static int _omap3_noncore_dpll_bypass(struct clk *clk)
> return -EINVAL;
>
> pr_debug("clock: configuring DPLL %s for low-power bypass\n",
> -#ifdef CONFIG_COMMON_CLK
> __clk_get_name(clk->hw.clk));
> -#else
> - __clk_get_name(clk));
> -#endif
>
> ai = omap3_dpll_autoidle_read(clk);
>
> @@ -243,22 +211,14 @@ static int _omap3_noncore_dpll_bypass(struct clk *clk)
> * code. If DPLL3 was passed in, or the DPLL does not support
> * low-power stop, return -EINVAL; otherwise, return 0.
> */
> -#ifdef CONFIG_COMMON_CLK
> static int _omap3_noncore_dpll_stop(struct clk_hw_omap *clk)
> -#else
> -static int _omap3_noncore_dpll_stop(struct clk *clk)
> -#endif
> {
> u8 ai;
>
> if (!(clk->dpll_data->modes & (1 << DPLL_LOW_POWER_STOP)))
> return -EINVAL;
>
> -#ifdef CONFIG_COMMON_CLK
> pr_debug("clock: stopping DPLL %s\n", __clk_get_name(clk->hw.clk));
> -#else
> - pr_debug("clock: stopping DPLL %s\n", __clk_get_name(clk));
> -#endif
>
> ai = omap3_dpll_autoidle_read(clk);
>
> @@ -282,19 +242,11 @@ static int _omap3_noncore_dpll_stop(struct clk *clk)
> * XXX This code is not needed for 3430/AM35xx; can it be optimized
> * out in non-multi-OMAP builds for those chips?
> */
> -#ifdef CONFIG_COMMON_CLK
> static void _lookup_dco(struct clk_hw_omap *clk, u8 *dco, u16 m, u8 n)
> -#else
> -static void _lookup_dco(struct clk *clk, u8 *dco, u16 m, u8 n)
> -#endif
> {
> unsigned long fint, clkinp; /* watch out for overflow */
>
> -#ifdef CONFIG_COMMON_CLK
> clkinp = __clk_get_rate(__clk_get_parent(clk->hw.clk));
> -#else
> - clkinp = __clk_get_rate(__clk_get_parent(clk));
> -#endif
> fint = (clkinp / n) * m;
>
> if (fint < 1000000000)
> @@ -315,20 +267,12 @@ static void _lookup_dco(struct clk *clk, u8 *dco, u16 m, u8 n)
> * XXX This code is not needed for 3430/AM35xx; can it be optimized
> * out in non-multi-OMAP builds for those chips?
> */
> -#ifdef CONFIG_COMMON_CLK
> static void _lookup_sddiv(struct clk_hw_omap *clk, u8 *sd_div, u16 m, u8 n)
> -#else
> -static void _lookup_sddiv(struct clk *clk, u8 *sd_div, u16 m, u8 n)
> -#endif
> {
> unsigned long clkinp, sd; /* watch out for overflow */
> int mod1, mod2;
>
> -#ifdef CONFIG_COMMON_CLK
> clkinp = __clk_get_rate(__clk_get_parent(clk->hw.clk));
> -#else
> - clkinp = __clk_get_rate(__clk_get_parent(clk));
> -#endif
>
> /*
> * target sigma-delta to near 250MHz
> @@ -355,12 +299,8 @@ static void _lookup_sddiv(struct clk *clk, u8 *sd_div, u16 m, u8 n)
> * Program the DPLL with the supplied M, N values, and wait for the DPLL to
> * lock.. Returns -EINVAL upon error, or 0 upon success.
> */
> -#ifdef CONFIG_COMMON_CLK
> static int omap3_noncore_dpll_program(struct clk_hw_omap *clk, u16 m, u8 n,
> u16 freqsel)
> -#else
> -static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel)
> -#endif
> {
> struct dpll_data *dd = clk->dpll_data;
> u8 dco, sd_div;
> @@ -417,14 +357,10 @@ static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel)
> *
> * Recalculate and propagate the DPLL rate.
> */
> -#ifdef CONFIG_COMMON_CLK
> unsigned long omap3_dpll_recalc(struct clk_hw *hw, unsigned long parent_rate)
> {
> struct clk_hw_omap *clk = to_clk_hw_omap(hw);
> -#else
> -unsigned long omap3_dpll_recalc(struct clk *clk)
> -{
> -#endif
> +
> return omap2_get_dpll_rate(clk);
> }
>
> @@ -444,14 +380,9 @@ unsigned long omap3_dpll_recalc(struct clk *clk)
> * support low-power stop, or if the DPLL took too long to enter
> * bypass or lock, return -EINVAL; otherwise, return 0.
> */
> -#ifdef CONFIG_COMMON_CLK
> int omap3_noncore_dpll_enable(struct clk_hw *hw)
> {
> struct clk_hw_omap *clk = to_clk_hw_omap(hw);
> -#else
> -int omap3_noncore_dpll_enable(struct clk *clk)
> -{
> -#endif
> int r;
> struct dpll_data *dd;
> struct clk *parent;
> @@ -460,7 +391,6 @@ int omap3_noncore_dpll_enable(struct clk *clk)
> if (!dd)
> return -EINVAL;
>
> -#ifdef CONFIG_COMMON_CLK
> if (clk->clkdm) {
> r = clkdm_clk_enable(clk->clkdm, hw->clk);
> if (r) {
> @@ -475,11 +405,6 @@ int omap3_noncore_dpll_enable(struct clk *clk)
> parent = __clk_get_parent(hw->clk);
>
> if (__clk_get_rate(hw->clk) == __clk_get_rate(dd->clk_bypass)) {
> -#else
> - parent = __clk_get_parent(clk);
> -
> - if (__clk_get_rate(clk) == __clk_get_rate(dd->clk_bypass)) {
> -#endif
> WARN_ON(parent != dd->clk_bypass);
> r = _omap3_noncore_dpll_bypass(clk);
> } else {
> @@ -487,16 +412,6 @@ int omap3_noncore_dpll_enable(struct clk *clk)
> r = _omap3_noncore_dpll_lock(clk);
> }
>
> -#ifndef CONFIG_COMMON_CLK
> - /*
> - *FIXME: this is dubious - if clk->rate has changed, what about
> - * propagating?
> - */
> - if (!r)
> - clk->rate = (clk->recalc) ? clk->recalc(clk) :
> - omap2_get_dpll_rate(clk);
> -#endif
> -
> return r;
> }
>
> @@ -507,7 +422,6 @@ int omap3_noncore_dpll_enable(struct clk *clk)
> * Instructs a non-CORE DPLL to enter low-power stop. This function is
> * intended for use in struct clkops. No return value.
> */
> -#ifdef CONFIG_COMMON_CLK
> void omap3_noncore_dpll_disable(struct clk_hw *hw)
> {
> struct clk_hw_omap *clk = to_clk_hw_omap(hw);
> @@ -515,13 +429,6 @@ void omap3_noncore_dpll_disable(struct clk_hw *hw)
> _omap3_noncore_dpll_stop(clk);
> if (clk->clkdm)
> clkdm_clk_disable(clk->clkdm, hw->clk);
> -#else
> -void omap3_noncore_dpll_disable(struct clk *clk)
> -{
> - _omap3_noncore_dpll_stop(clk);
> - if (clk->clkdm)
> - clkdm_clk_disable(clk->clkdm, clk);
> -#endif
> }
>
>
> @@ -538,7 +445,6 @@ void omap3_noncore_dpll_disable(struct clk *clk)
> * target rate if it hasn't been done already, then program and lock
> * the DPLL. Returns -EINVAL upon error, or 0 upon success.
> */
> -#ifdef CONFIG_COMMON_CLK
> int omap3_noncore_dpll_set_rate(struct clk_hw *hw, unsigned long rate,
> unsigned long parent_rate)
> {
> @@ -608,85 +514,6 @@ int omap3_noncore_dpll_set_rate(struct clk_hw *hw, unsigned long rate,
>
> return 0;
> }
> -#else
> -int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
> -{
> - struct clk *new_parent = NULL;
> - unsigned long hw_rate, bypass_rate;
> - u16 freqsel = 0;
> - struct dpll_data *dd;
> - int ret;
> -
> - if (!clk || !rate)
> - return -EINVAL;
> -
> - dd = clk->dpll_data;
> - if (!dd)
> - return -EINVAL;
> -
> - hw_rate = (clk->recalc) ? clk->recalc(clk) : omap2_get_dpll_rate(clk);
> - if (rate == hw_rate)
> - return 0;
> -
> - /*
> - * Ensure both the bypass and ref clocks are enabled prior to
> - * doing anything; we need the bypass clock running to reprogram
> - * the DPLL.
> - */
> - omap2_clk_enable(dd->clk_bypass);
> - omap2_clk_enable(dd->clk_ref);
> -
> - bypass_rate = __clk_get_rate(dd->clk_bypass);
> - if (bypass_rate == rate &&
> - (clk->dpll_data->modes & (1 << DPLL_LOW_POWER_BYPASS))) {
> - pr_debug("clock: %s: set rate: entering bypass.\n", clk->name);
> -
> - ret = _omap3_noncore_dpll_bypass(clk);
> - if (!ret)
> - new_parent = dd->clk_bypass;
> - } else {
> - if (dd->last_rounded_rate != rate)
> - rate = clk->round_rate(clk, rate);
> -
> - if (dd->last_rounded_rate == 0)
> - return -EINVAL;
> -
> - /* No freqsel on OMAP4 and OMAP3630 */
> - if (!soc_is_am33xx() && !cpu_is_omap44xx() && !cpu_is_omap3630()) {
> - freqsel = _omap3_dpll_compute_freqsel(clk,
> - dd->last_rounded_n);
> - if (!freqsel)
> - WARN_ON(1);
> - }
> -
> - pr_debug("clock: %s: set rate: locking rate to %lu.\n",
> - __clk_get_name(clk), rate);
> -
> - ret = omap3_noncore_dpll_program(clk, dd->last_rounded_m,
> - dd->last_rounded_n, freqsel);
> - if (!ret)
> - new_parent = dd->clk_ref;
> - }
> - if (!ret) {
> - /*
> - * Switch the parent clock in the hierarchy, and make sure
> - * that the new parent's usecount is correct. Note: we
> - * enable the new parent before disabling the old to avoid
> - * any unnecessary hardware disable->enable transitions.
> - */
> - if (clk->usecount) {
> - omap2_clk_enable(new_parent);
> - omap2_clk_disable(clk->parent);
> - }
> - clk_reparent(clk, new_parent);
> - clk->rate = rate;
> - }
> - omap2_clk_disable(dd->clk_ref);
> - omap2_clk_disable(dd->clk_bypass);
> -
> - return 0;
> -}
> -#endif
>
> /* DPLL autoidle read/set code */
>
> @@ -698,11 +525,7 @@ int omap3_noncore_dpll_set_rate(struct clk *clk, unsigned long rate)
> * -EINVAL if passed a null pointer or if the struct clk does not
> * appear to refer to a DPLL.
> */
> -#ifdef CONFIG_COMMON_CLK
> u32 omap3_dpll_autoidle_read(struct clk_hw_omap *clk)
> -#else
> -u32 omap3_dpll_autoidle_read(struct clk *clk)
> -#endif
> {
> const struct dpll_data *dd;
> u32 v;
> @@ -731,11 +554,7 @@ u32 omap3_dpll_autoidle_read(struct clk *clk)
> * OMAP3430. The DPLL will enter low-power stop when its downstream
> * clocks are gated. No return value.
> */
> -#ifdef CONFIG_COMMON_CLK
> void omap3_dpll_allow_idle(struct clk_hw_omap *clk)
> -#else
> -void omap3_dpll_allow_idle(struct clk *clk)
> -#endif
> {
> const struct dpll_data *dd;
> u32 v;
> @@ -745,13 +564,8 @@ void omap3_dpll_allow_idle(struct clk *clk)
>
> dd = clk->dpll_data;
>
> - if (!dd->autoidle_reg) {
> -#ifndef CONFIG_COMMON_CLK
> - pr_debug("clock: DPLL %s: autoidle not supported\n",
> - __clk_get_name(clk));
> -#endif
> + if (!dd->autoidle_reg)
> return;
> - }
>
> /*
> * REVISIT: CORE DPLL can optionally enter low-power bypass
> @@ -771,11 +585,7 @@ void omap3_dpll_allow_idle(struct clk *clk)
> *
> * Disable DPLL automatic idle control. No return value.
> */
> -#ifdef CONFIG_COMMON_CLK
> void omap3_dpll_deny_idle(struct clk_hw_omap *clk)
> -#else
> -void omap3_dpll_deny_idle(struct clk *clk)
> -#endif
> {
> const struct dpll_data *dd;
> u32 v;
> @@ -785,13 +595,8 @@ void omap3_dpll_deny_idle(struct clk *clk)
>
> dd = clk->dpll_data;
>
> - if (!dd->autoidle_reg) {
> -#ifndef CONFIG_COMMON_CLK
> - pr_debug("clock: DPLL %s: autoidle not supported\n",
> - __clk_get_name(clk));
> -#endif
> + if (!dd->autoidle_reg)
> return;
> - }
>
> v = __raw_readl(dd->autoidle_reg);
> v &= ~dd->autoidle_mask;
> @@ -809,7 +614,6 @@ void omap3_dpll_deny_idle(struct clk *clk)
> * Using parent clock DPLL data, look up DPLL state. If locked, set our
> * rate to the dpll_clk * 2; otherwise, just use dpll_clk.
> */
> -#ifdef CONFIG_COMMON_CLK
> unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw,
> unsigned long parent_rate)
> {
> @@ -829,22 +633,7 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw,
> break;
> pclk = to_clk_hw_omap(hw);
> } while (pclk && !pclk->dpll_data);
> -#else
> -unsigned long omap3_clkoutx2_recalc(struct clk *clk)
> -{
> - const struct dpll_data *dd;
> - unsigned long rate;
> - u32 v;
> - struct clk *pclk;
> - unsigned long parent_rate;
>
> - /* Walk up the parents of clk, looking for a DPLL */
> - pclk = __clk_get_parent(clk);
> - while (pclk && !pclk->dpll_data)
> - pclk = __clk_get_parent(pclk);
> -
> - parent_rate = __clk_get_rate(__clk_get_parent(clk));
> -#endif
> /* clk does not have a DPLL as a parent? error in the clock data */
> if (!pclk) {
> WARN_ON(1);
> @@ -865,21 +654,7 @@ unsigned long omap3_clkoutx2_recalc(struct clk *clk)
> }
>
> /* OMAP3/4 non-CORE DPLL clkops */
> -#ifdef CONFIG_COMMON_CLK
> const struct clk_hw_omap_ops clkhwops_omap3_dpll = {
> .allow_idle = omap3_dpll_allow_idle,
> .deny_idle = omap3_dpll_deny_idle,
> };
> -#else
> -const struct clkops clkops_omap3_noncore_dpll_ops = {
> - .enable = omap3_noncore_dpll_enable,
> - .disable = omap3_noncore_dpll_disable,
> - .allow_idle = omap3_dpll_allow_idle,
> - .deny_idle = omap3_dpll_deny_idle,
> -};
> -
> -const struct clkops clkops_omap3_core_dpll_ops = {
> - .allow_idle = omap3_dpll_allow_idle,
> - .deny_idle = omap3_dpll_deny_idle,
> -};
> -#endif
> --
> 1.7.10.4
More information about the linux-arm-kernel
mailing list