Skip to contentSkip to conversation

ARM: clk: imx: remove the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags

PATCH New Huang Shijie 3 participants 5 messages May 26, 2014 – May 29, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: clk: imx: remove the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags

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.

---
 arch/arm/mach-imx/clk.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
arch/arm/mach-imx/clk.h +1 -2
index e29f6eb..32d6253 100644
@@ -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,
Signature · 1 line
1.7.8
#1 lore raw

PATCH 1/1 ARM: clk: imx: remove the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags

Am Montag, den 26.05.2014, 15:31 +0800 schrieb Huang Shijie:

Quoted 19 lines

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.

---
 arch/arm/mach-imx/clk.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
arch/arm/mach-imx/clk.h +0 -0
index e29f6eb..32d6253 100644

arch/arm/mach-imx/clk.h static inline struct clk *imx_clk_mux_flags(const char *name, · line 114

Quoted 9 lines
arch/arm/mach-imx/clk.h +1 -2
@@ -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

#2 lore raw

PATCH 1/1 ARM: clk: imx: remove the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags

Quoted 28 lines · Philipp Zabel

Am Montag, den 26.05.2014, 15:31 +0800 schrieb Huang Shijie:

Quoted 27 lines

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.

---
 arch/arm/mach-imx/clk.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
arch/arm/mach-imx/clk.h +1 -2
index e29f6eb..32d6253 100644
@@ -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);
 }
 
Quoted 6 lines

arch/arm/mach-imx/clk.h static inline struct clk *imx_clk_mux_flags(const char *name, · line 114

Quoted 1 line
arch/arm/mach-imx/clk.h +0 -0
 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

#3 lore raw

PATCH 1/1 ARM: clk: imx: remove the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags

In reply to Philipp Zabel
Quoted 9 lines · Philipp Zabel
Quoted 9 lines
arch/arm/mach-imx/clk.h +1 -2
@@ -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);
 }
 
Quoted 6 lines

arch/arm/mach-imx/clk.h static inline struct clk *imx_clk_mux_flags(const char *name, · line 114

Quoted 1 line
arch/arm/mach-imx/clk.h +0 -0
 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

#4 lore raw

PATCH 1/1 ARM: clk: imx: remove the CLK_SET_RATE_NO_REPARENT for imx_clk_mux_flags

In reply to Huang Shijie
Quoted 10 lines · 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.

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

Shawn

Quoted 21 lines
---
 arch/arm/mach-imx/clk.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
arch/arm/mach-imx/clk.h +1 -2
index e29f6eb..32d6253 100644
@@ -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,
Signature · 1 line
1.7.8