Commit 6f8e853d authored by Tero Kristo's avatar Tero Kristo Committed by Michael Turquette

ARM: OMAP2+: clock: fix DPLL code to use new determine rate APIs

While the change for determine_rate clock operation was merged,
the OMAP counterpart using these calls was overlooked for some reason,
and caused boot failures on at least OMAP4 platforms. Fixed by updating
the DPLL API calls to use the new parameters.
Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
Fixes: 646cafc6 ("clk: Change clk_ops->determine_rate")
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Acked-by: default avatarPaul Walmsley <paul@pwsan.com>
Tested-by: default avatarKevin Hilman <khilman@linaro.org>
Reported-by: default avatarKevin Hilman <khilman@linaro.org>
Signed-off-by: default avatarMichael Turquette <mturquette@linaro.org>
parent b1924c2e
...@@ -474,7 +474,7 @@ void omap3_noncore_dpll_disable(struct clk_hw *hw) ...@@ -474,7 +474,7 @@ void omap3_noncore_dpll_disable(struct clk_hw *hw)
*/ */
long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate, long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *best_parent_rate, unsigned long *best_parent_rate,
struct clk **best_parent_clk) struct clk_hw **best_parent_clk)
{ {
struct clk_hw_omap *clk = to_clk_hw_omap(hw); struct clk_hw_omap *clk = to_clk_hw_omap(hw);
struct dpll_data *dd; struct dpll_data *dd;
...@@ -488,10 +488,10 @@ long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate, ...@@ -488,10 +488,10 @@ long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, unsigned long rate,
if (__clk_get_rate(dd->clk_bypass) == rate && if (__clk_get_rate(dd->clk_bypass) == rate &&
(dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) { (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) {
*best_parent_clk = dd->clk_bypass; *best_parent_clk = __clk_get_hw(dd->clk_bypass);
} else { } else {
rate = omap2_dpll_round_rate(hw, rate, best_parent_rate); rate = omap2_dpll_round_rate(hw, rate, best_parent_rate);
*best_parent_clk = dd->clk_ref; *best_parent_clk = __clk_get_hw(dd->clk_ref);
} }
*best_parent_rate = rate; *best_parent_rate = rate;
......
...@@ -223,7 +223,7 @@ long omap4_dpll_regm4xen_round_rate(struct clk_hw *hw, ...@@ -223,7 +223,7 @@ long omap4_dpll_regm4xen_round_rate(struct clk_hw *hw,
*/ */
long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate, long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *best_parent_rate, unsigned long *best_parent_rate,
struct clk **best_parent_clk) struct clk_hw **best_parent_clk)
{ {
struct clk_hw_omap *clk = to_clk_hw_omap(hw); struct clk_hw_omap *clk = to_clk_hw_omap(hw);
struct dpll_data *dd; struct dpll_data *dd;
...@@ -237,11 +237,11 @@ long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate, ...@@ -237,11 +237,11 @@ long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long rate,
if (__clk_get_rate(dd->clk_bypass) == rate && if (__clk_get_rate(dd->clk_bypass) == rate &&
(dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) { (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) {
*best_parent_clk = dd->clk_bypass; *best_parent_clk = __clk_get_hw(dd->clk_bypass);
} else { } else {
rate = omap4_dpll_regm4xen_round_rate(hw, rate, rate = omap4_dpll_regm4xen_round_rate(hw, rate,
best_parent_rate); best_parent_rate);
*best_parent_clk = dd->clk_ref; *best_parent_clk = __clk_get_hw(dd->clk_ref);
} }
*best_parent_rate = rate; *best_parent_rate = rate;
......
...@@ -264,7 +264,7 @@ int omap3_noncore_dpll_set_rate_and_parent(struct clk_hw *hw, ...@@ -264,7 +264,7 @@ int omap3_noncore_dpll_set_rate_and_parent(struct clk_hw *hw,
long omap3_noncore_dpll_determine_rate(struct clk_hw *hw, long omap3_noncore_dpll_determine_rate(struct clk_hw *hw,
unsigned long rate, unsigned long rate,
unsigned long *best_parent_rate, unsigned long *best_parent_rate,
struct clk **best_parent_clk); struct clk_hw **best_parent_clk);
unsigned long omap4_dpll_regm4xen_recalc(struct clk_hw *hw, unsigned long omap4_dpll_regm4xen_recalc(struct clk_hw *hw,
unsigned long parent_rate); unsigned long parent_rate);
long omap4_dpll_regm4xen_round_rate(struct clk_hw *hw, long omap4_dpll_regm4xen_round_rate(struct clk_hw *hw,
...@@ -273,7 +273,7 @@ long omap4_dpll_regm4xen_round_rate(struct clk_hw *hw, ...@@ -273,7 +273,7 @@ long omap4_dpll_regm4xen_round_rate(struct clk_hw *hw,
long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw,
unsigned long rate, unsigned long rate,
unsigned long *best_parent_rate, unsigned long *best_parent_rate,
struct clk **best_parent_clk); struct clk_hw **best_parent_clk);
u8 omap2_init_dpll_parent(struct clk_hw *hw); u8 omap2_init_dpll_parent(struct clk_hw *hw);
unsigned long omap3_dpll_recalc(struct clk_hw *hw, unsigned long parent_rate); unsigned long omap3_dpll_recalc(struct clk_hw *hw, unsigned long parent_rate);
long omap2_dpll_round_rate(struct clk_hw *hw, unsigned long target_rate, long omap2_dpll_round_rate(struct clk_hw *hw, unsigned long target_rate,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment