summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbel Vesa <abel.vesa@nxp.com>2019-07-30 10:22:55 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-10-07 18:58:41 +0200
commitd1deded18c3e1154b1be1d8ba64edce3bb37e800 (patch)
tree752fb78c47516ae3e08dfe0e95acc20fedcf6e76
parent22acd1a64d95e022df13ee71631e582ff855773a (diff)
downloadlinux-stable-d1deded18c3e1154b1be1d8ba64edce3bb37e800.tar.gz
linux-stable-d1deded18c3e1154b1be1d8ba64edce3bb37e800.tar.bz2
linux-stable-d1deded18c3e1154b1be1d8ba64edce3bb37e800.zip
clk: imx8mq: Mark AHB clock as critical
[ Upstream commit 9b9c60bed562c3718ae324a86f3f30a4ff983cf8 ] 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: "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> Signed-off-by: Shawn Guo <shawnguo@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/clk/imx/clk-imx8mq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/clk/imx/clk-imx8mq.c b/drivers/clk/imx/clk-imx8mq.c
index daf1841b2adb..f29025c99c53 100644
--- a/drivers/clk/imx/clk-imx8mq.c
+++ b/drivers/clk/imx/clk-imx8mq.c
@@ -396,7 +396,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 */