From 41aa3f3dfbee8281a022d3b7c5815bfe5c710599 Mon Sep 17 00:00:00 2001 From: Leonard Crestez Date: Sun, 19 May 2019 16:39:27 +0300 Subject: [PATCH] MLK-21650 clk: imx6sx: Fix reparenting perclk Remove the CLK_IS_CRITICAL flag because this breaks the reparenting of perclk_sel to osc. Replace this with an explicit clk_prepare_enable instead. Signed-off-by: Leonard Crestez Reviewed-by: Anson Huang --- drivers/clk/imx/clk-imx6sx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/imx/clk-imx6sx.c b/drivers/clk/imx/clk-imx6sx.c index 3ee589c189e5..70f7b341fe6b 100644 --- a/drivers/clk/imx/clk-imx6sx.c +++ b/drivers/clk/imx/clk-imx6sx.c @@ -375,7 +375,7 @@ static void __init imx6sx_clocks_init(struct device_node *ccm_node) clks[IMX6SX_CLK_QSPI1_PODF] = imx_clk_divider("qspi1_podf", "qspi1_sel", base + 0x1c, 26, 3); clks[IMX6SX_CLK_EIM_SLOW_PODF] = imx_clk_divider("eim_slow_podf", "eim_slow_sel", base + 0x1c, 23, 3); clks[IMX6SX_CLK_LCDIF2_PODF] = imx_clk_divider("lcdif2_podf", "lcdif2_pred", base + 0x1c, 20, 3); - clks[IMX6SX_CLK_PERCLK] = imx_clk_divider_flags("perclk", "perclk_sel", base + 0x1c, 0, 6, CLK_IS_CRITICAL); + clks[IMX6SX_CLK_PERCLK] = imx_clk_divider("perclk", "perclk_sel", base + 0x1c, 0, 6); clks[IMX6SX_CLK_VID_PODF] = imx_clk_divider("vid_podf", "vid_sel", base + 0x20, 24, 2); clks[IMX6SX_CLK_CAN_PODF] = imx_clk_divider("can_podf", "can_sel", base + 0x20, 2, 6); clks[IMX6SX_CLK_USDHC4_PODF] = imx_clk_divider("usdhc4_podf", "usdhc4_sel", base + 0x24, 22, 3); @@ -590,6 +590,7 @@ static void __init imx6sx_clocks_init(struct device_node *ccm_node) /* set perclk to from OSC */ imx_clk_set_parent(clks[IMX6SX_CLK_PERCLK_SEL], clks[IMX6SX_CLK_OSC]); + imx_clk_prepare_enable(clks[IMX6SX_CLK_PERCLK]); if (IS_ENABLED(CONFIG_USB_MXS_PHY)) { imx_clk_prepare_enable(clks[IMX6SX_CLK_USBPHY1_GATE]); -- 2.17.1