[v3] clk: imx8mq: Mark AHB clock as critical
diff mbox series

Message ID 1564471375-6736-1-git-send-email-abel.vesa@nxp.com
State Mainlined
Commit 9b9c60bed562c3718ae324a86f3f30a4ff983cf8
Headers show
Series
  • [v3] clk: imx8mq: Mark AHB clock as critical
Related show

Commit Message

Abel Vesa July 30, 2019, 7:22 a.m. UTC
Initially, the TMU_ROOT clock was marked as critical, which automatically
made the AHB clock to stay always on. Since the TMU_ROOT clock is not
marked as critical anymore, following commit:

431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")

all the clocks that derive from ipg_root clock (and implicitly ahb clock)
would also have to enable, along with their own gate, the AHB clock.

But considering that AHB is actually a bus that has to be always on, we mark
it as critical in the clock provider driver and then all the clocks that
derive from it can be controlled through the dedicated per IP gate which
follows after the ipg_root clock.

Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
Tested-by: Daniel Baluta <daniel.baluta@nxp.com>
Fixes: 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")
---

Changes since v2:
 * added a more detailed commit message and mentioned the commit
   that this change is fixing

 drivers/clk/imx/clk-imx8mq.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Stephen Boyd July 30, 2019, 5:52 p.m. UTC | #1
Quoting Abel Vesa (2019-07-30 00:22:55)
> Initially, the TMU_ROOT clock was marked as critical, which automatically
> made the AHB clock to stay always on. Since the TMU_ROOT clock is not
> marked as critical anymore, following commit:
> 
> 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")
> 
> all the clocks that derive from ipg_root clock (and implicitly ahb clock)
> would also have to enable, along with their own gate, the AHB clock.
> 
> But considering that AHB is actually a bus that has to be always on, we mark
> it as critical in the clock provider driver and then all the clocks that
> derive from it can be controlled through the dedicated per IP gate which
> follows after the ipg_root clock.
> 
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Tested-by: Daniel Baluta <daniel.baluta@nxp.com>
> Fixes: 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")
> ---
> 

Should I just apply this to clk-fixes branch?
Abel Vesa July 30, 2019, 6:38 p.m. UTC | #2
On 19-07-30 10:52:30, Stephen Boyd wrote:
> Quoting Abel Vesa (2019-07-30 00:22:55)
> > Initially, the TMU_ROOT clock was marked as critical, which automatically
> > made the AHB clock to stay always on. Since the TMU_ROOT clock is not
> > marked as critical anymore, following commit:
> > 
> > 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")
> > 
> > all the clocks that derive from ipg_root clock (and implicitly ahb clock)
> > would also have to enable, along with their own gate, the AHB clock.
> > 
> > But considering that AHB is actually a bus that has to be always on, we mark
> > it as critical in the clock provider driver and then all the clocks that
> > derive from it can be controlled through the dedicated per IP gate which
> > follows after the ipg_root clock.
> > 
> > Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> > Tested-by: Daniel Baluta <daniel.baluta@nxp.com>
> > Fixes: 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")
> > ---
> > 
> 
> Should I just apply this to clk-fixes branch?
> 

Nope. The commit 431bdd1df48e is just in -next for now.
So this has to be taken by Shawn, I think.
Stephen Boyd July 30, 2019, 9:40 p.m. UTC | #3
Quoting Abel Vesa (2019-07-30 11:38:18)
> On 19-07-30 10:52:30, Stephen Boyd wrote:
> > Quoting Abel Vesa (2019-07-30 00:22:55)
> > > Initially, the TMU_ROOT clock was marked as critical, which automatically
> > > made the AHB clock to stay always on. Since the TMU_ROOT clock is not
> > > marked as critical anymore, following commit:
> > > 
> > > 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")
> > > 
> > > all the clocks that derive from ipg_root clock (and implicitly ahb clock)
> > > would also have to enable, along with their own gate, the AHB clock.
> > > 
> > > But considering that AHB is actually a bus that has to be always on, we mark
> > > it as critical in the clock provider driver and then all the clocks that
> > > derive from it can be controlled through the dedicated per IP gate which
> > > follows after the ipg_root clock.
> > > 
> > > Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> > > Tested-by: Daniel Baluta <daniel.baluta@nxp.com>
> > > Fixes: 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")
> > > ---
> > > 
> > 
> > Should I just apply this to clk-fixes branch?
> > 
> 
> Nope. The commit 431bdd1df48e is just in -next for now.
> So this has to be taken by Shawn, I think.

Ah ok. I thought it was related to some other problem someone was seeing
in the rc series but you're right, it was just linux-next for them.
Shawn Guo Aug. 3, 2019, 3:04 p.m. UTC | #4
On Tue, Jul 30, 2019 at 10:22:55AM +0300, Abel Vesa wrote:
> Initially, the TMU_ROOT clock was marked as critical, which automatically
> made the AHB clock to stay always on. Since the TMU_ROOT clock is not
> marked as critical anymore, following commit:
> 
> 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")

The commit ID is not stable before the commit actually lands mainline.
I could possibly rebase the branch.

> 
> all the clocks that derive from ipg_root clock (and implicitly ahb clock)
> would also have to enable, along with their own gate, the AHB clock.
> 
> But considering that AHB is actually a bus that has to be always on, we mark
> it as critical in the clock provider driver and then all the clocks that
> derive from it can be controlled through the dedicated per IP gate which
> follows after the ipg_root clock.
> 
> Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
> Tested-by: Daniel Baluta <daniel.baluta@nxp.com>
> Fixes: 431bdd1df48e ("clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT")

Dropped commit ID above and Fixes tag here, and applied the patch. 

Thanks for the fixing.

Shawn

Patch
diff mbox series

diff --git a/drivers/clk/imx/clk-imx8mq.c b/drivers/clk/imx/clk-imx8mq.c
index 4328c22..04302f2 100644
--- a/drivers/clk/imx/clk-imx8mq.c
+++ b/drivers/clk/imx/clk-imx8mq.c
@@ -406,7 +406,8 @@  static int imx8mq_clocks_probe(struct platform_device *pdev)
 	clks[IMX8MQ_CLK_NOC_APB] = imx8m_clk_composite_critical("noc_apb", imx8mq_noc_apb_sels, base + 0x8d80);
 
 	/* AHB */
-	clks[IMX8MQ_CLK_AHB] = imx8m_clk_composite("ahb", imx8mq_ahb_sels, base + 0x9000);
+	/* AHB clock is used by the AHB bus therefore marked as critical */
+	clks[IMX8MQ_CLK_AHB] = imx8m_clk_composite_critical("ahb", imx8mq_ahb_sels, base + 0x9000);
 	clks[IMX8MQ_CLK_AUDIO_AHB] = imx8m_clk_composite("audio_ahb", imx8mq_audio_ahb_sels, base + 0x9100);
 
 	/* IPG */