* Stephen Boyd <[email protected]> [141205 10:23]:
> On 12/05/2014 08:55 AM, Tony Lindgren wrote:
> > Hi,
> >
> > Looks like commit 646cafc6aa4d ("clk: Change clk_ops->determine_rate
> > to return a clk_hw as the best parent") breaks booting at least for
> > omap4.
> 
> Do you get a compilation warning in arch/arm/mach-omap2/dpll3xxx.c ?

Yes so it seems.

> From what I can tell omap3_noncore_dpll_determine_rate() hasn't been
> updated to take a clk_hw pointer instead of clk pointer. It was there in
> the original patch and I'm not sure why Mike dropped that part while
> applying.

OK that makes sense, Mike should apply that part too. Note that also
include/linux/clk/ti.h needs changed accordingly for struct clk_hw,
which you probably had in your orignal patch too. Assuming that's there,
please feel free to add:

Acked-by: Tony Lindgren <[email protected]>
 
> diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c
> index 20e120d..c2da2a0 100644
> --- a/arch/arm/mach-omap2/dpll3xxx.c
> +++ b/arch/arm/mach-omap2/dpll3xxx.c
> @@ -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,
>                                      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 dpll_data *dd;
> @@ -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 &&
>           (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) {
> -             *best_parent_clk = dd->clk_bypass;
> +             *best_parent_clk = __clk_get_hw(dd->clk_bypass);
>       } else {
>               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;
> diff --git a/arch/arm/mach-omap2/dpll44xx.c b/arch/arm/mach-omap2/dpll44xx.c
> index 535822f..0e58e5a 100644
> --- a/arch/arm/mach-omap2/dpll44xx.c
> +++ b/arch/arm/mach-omap2/dpll44xx.c
> @@ -223,7 +223,7 @@ out:
>   */
>  long omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, unsigned long 
> 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 dpll_data *dd;
> @@ -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 &&
>           (dd->modes & (1 << DPLL_LOW_POWER_BYPASS))) {
> -             *best_parent_clk = dd->clk_bypass;
> +             *best_parent_clk = __clk_get_hw(dd->clk_bypass);
>       } else {
>               rate = omap4_dpll_regm4xen_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;
> 
> -- 
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to