diff mbox

ARM: clk: imx: remove the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags

Message ID 1401089474-14346-1-git-send-email-b32955@freescale.com
State New
Headers show

Commit Message

Huang Shijie May 26, 2014, 7:31 a.m. UTC
The clocks for Quadspi controller may be different when different
NOR flashes are connected to the board.

But the CLK_SET_RATE_NO_REPARENT flag in the current imx_clk_mux_flags
makes the clock do not have the re-parent capability.

This patch removes the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags.
It makes the Quadspi happy.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 arch/arm/mach-imx/clk.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

Comments

Huang Shijie May 26, 2014, 7:46 a.m. UTC | #1
On Mon, May 26, 2014 at 11:03:22AM +0200, Philipp Zabel wrote:
> Am Montag, den 26.05.2014, 15:31 +0800 schrieb Huang Shijie:
> > The clocks for Quadspi controller may be different when different
> > NOR flashes are connected to the board.
> > 
> > But the CLK_SET_RATE_NO_REPARENT flag in the current imx_clk_mux_flags
> > makes the clock do not have the re-parent capability.
> > 
> > This patch removes the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags.
> > It makes the Quadspi happy.
> > 
> > Signed-off-by: Huang Shijie <b32955@freescale.com>
> > ---
> >  arch/arm/mach-imx/clk.h |    3 +--
> >  1 files changed, 1 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
> > index e29f6eb..32d6253 100644
> > --- a/arch/arm/mach-imx/clk.h
> > +++ b/arch/arm/mach-imx/clk.h
> > @@ -108,8 +108,7 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
> >  		int num_parents, unsigned long flags)
> >  {
> >  	return clk_register_mux(NULL, name, parents, num_parents,
> > -			flags | CLK_SET_RATE_NO_REPARENT, reg, shift, width, 0,
> > -			&imx_ccm_lock);
> > +			flags, reg, shift, width, 0, &imx_ccm_lock);
> >  }
> >  
> >  static inline struct clk *imx_clk_fixed_factor(const char *name,
> 
> We need CLK_SET_RATE_NO_REPARENT on the audio/video multiplexers.
> I think this change is the right thing for imx_clk_mux_flags, but at the
> same you should make sure not to drop this flag where we want to control
> a video PLL through the mux.
thanks for the quick response.

Could you tell me the clocks the audio/video used?

we can add the CLK_SET_RATE_NO_REPARENT to them.

thanks
Huang Shijie
Philipp Zabel May 26, 2014, 9:03 a.m. UTC | #2
Am Montag, den 26.05.2014, 15:31 +0800 schrieb Huang Shijie:
> The clocks for Quadspi controller may be different when different
> NOR flashes are connected to the board.
> 
> But the CLK_SET_RATE_NO_REPARENT flag in the current imx_clk_mux_flags
> makes the clock do not have the re-parent capability.
> 
> This patch removes the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags.
> It makes the Quadspi happy.
> 
> Signed-off-by: Huang Shijie <b32955@freescale.com>
> ---
>  arch/arm/mach-imx/clk.h |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
> index e29f6eb..32d6253 100644
> --- a/arch/arm/mach-imx/clk.h
> +++ b/arch/arm/mach-imx/clk.h
> @@ -108,8 +108,7 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
>  		int num_parents, unsigned long flags)
>  {
>  	return clk_register_mux(NULL, name, parents, num_parents,
> -			flags | CLK_SET_RATE_NO_REPARENT, reg, shift, width, 0,
> -			&imx_ccm_lock);
> +			flags, reg, shift, width, 0, &imx_ccm_lock);
>  }
>  
>  static inline struct clk *imx_clk_fixed_factor(const char *name,

We need CLK_SET_RATE_NO_REPARENT on the audio/video multiplexers.
I think this change is the right thing for imx_clk_mux_flags, but at the
same you should make sure not to drop this flag where we want to control
a video PLL through the mux.

regards
Philipp
Shawn Guo May 26, 2014, 9:11 a.m. UTC | #3
On Mon, May 26, 2014 at 11:03:22AM +0200, Philipp Zabel wrote:
> > @@ -108,8 +108,7 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
> >  		int num_parents, unsigned long flags)
> >  {
> >  	return clk_register_mux(NULL, name, parents, num_parents,
> > -			flags | CLK_SET_RATE_NO_REPARENT, reg, shift, width, 0,
> > -			&imx_ccm_lock);
> > +			flags, reg, shift, width, 0, &imx_ccm_lock);
> >  }
> >  
> >  static inline struct clk *imx_clk_fixed_factor(const char *name,
> 
> We need CLK_SET_RATE_NO_REPARENT on the audio/video multiplexers.
> I think this change is the right thing for imx_clk_mux_flags, but at the
> same you should make sure not to drop this flag where we want to control
> a video PLL through the mux.

Philipp,

Are you saying that you see a different clock tree topology after this
change?

Shawn
Shawn Guo May 29, 2014, 8:10 a.m. UTC | #4
On Mon, May 26, 2014 at 03:31:14PM +0800, Huang Shijie wrote:
> The clocks for Quadspi controller may be different when different
> NOR flashes are connected to the board.
> 
> But the CLK_SET_RATE_NO_REPARENT flag in the current imx_clk_mux_flags
> makes the clock do not have the re-parent capability.
> 
> This patch removes the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags.
> It makes the Quadspi happy.
> 
> Signed-off-by: Huang Shijie <b32955@freescale.com>

Applied it for now.  Let's if the change will cause any issue on
linux-next.

Shawn

> ---
>  arch/arm/mach-imx/clk.h |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
> index e29f6eb..32d6253 100644
> --- a/arch/arm/mach-imx/clk.h
> +++ b/arch/arm/mach-imx/clk.h
> @@ -108,8 +108,7 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
>  		int num_parents, unsigned long flags)
>  {
>  	return clk_register_mux(NULL, name, parents, num_parents,
> -			flags | CLK_SET_RATE_NO_REPARENT, reg, shift, width, 0,
> -			&imx_ccm_lock);
> +			flags, reg, shift, width, 0, &imx_ccm_lock);
>  }
>  
>  static inline struct clk *imx_clk_fixed_factor(const char *name,
> -- 
> 1.7.8
>
diff mbox

Patch

diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
index e29f6eb..32d6253 100644
--- a/arch/arm/mach-imx/clk.h
+++ b/arch/arm/mach-imx/clk.h
@@ -108,8 +108,7 @@  static inline struct clk *imx_clk_mux_flags(const char *name,
 		int num_parents, unsigned long flags)
 {
 	return clk_register_mux(NULL, name, parents, num_parents,
-			flags | CLK_SET_RATE_NO_REPARENT, reg, shift, width, 0,
-			&imx_ccm_lock);
+			flags, reg, shift, width, 0, &imx_ccm_lock);
 }
 
 static inline struct clk *imx_clk_fixed_factor(const char *name,