From 3306d4381ac6db3dbb08f08a6c4aaf24dcdcf528 Mon Sep 17 00:00:00 2001 From: Shengjiu Wang Date: Fri, 30 Aug 2019 11:24:54 +0800 Subject: [PATCH] MLK-22484: ARM64: dts: Fix mem clock for asrc The mem clock is used to access the register, if there is no mem clock defined, we should use the ipg clock instead, otherwise there will be kernel dump after system reboot. [ 3.010962] Kernel panic - not syncing: Asynchronous SError Interrupt [ 3.010964] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.19.35-05057-g2134d856e6b2 #2889 [ 3.010966] Hardware name: Freescale i.MX8QXP MEK (DT) [ 3.010968] Call trace: [ 3.010969] dump_backtrace+0x0/0x178 [ 3.010971] show_stack+0x14/0x20 [ 3.010972] dump_stack+0x8c/0xac [ 3.010974] panic+0x120/0x28c [ 3.010975] __stack_chk_fail+0x0/0x18 [ 3.010977] arm64_serror_panic+0x74/0x80 [ 3.010979] do_serror+0x68/0x130 [ 3.010980] el1_error+0x7c/0xdc [ 3.010982] _raw_spin_unlock_irqrestore+0xc/0x48 [ 3.010984] clk_core_disable_lock+0x28/0x38 [ 3.010985] clk_disable+0x1c/0x30 [ 3.010987] regmap_mmio_write+0x54/0x68 [ 3.010989] _regmap_bus_reg_write+0x14/0x20 [ 3.010990] _regmap_write+0x60/0xa8 [ 3.010992] regmap_write+0x48/0x70 [ 3.010994] fsl_asrc_probe+0x258/0x660 [ 3.010995] platform_drv_probe+0x50/0xb0 Why this issue only happen at kernel reboot, it is because the ipg clock is enabled in default after system reset, after used once, the ipg clock is disabled, then reboot system, the issue happen. Signed-off-by: Shengjiu Wang --- arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi index d5bb55534c90..23474ee194b7 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi @@ -3058,7 +3058,7 @@ interrupts = , ; clocks = <&clk IMX8QXP_AUD_ASRC_0_IPG>, - <&clk IMX8QXP_CLK_DUMMY>, + <&clk IMX8QXP_AUD_ASRC_0_IPG>, <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_CLK>, <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK1_CLK>, <&clk IMX8QXP_ACM_AUD_CLK0_SEL>, @@ -3098,7 +3098,7 @@ interrupts = , ; clocks = <&clk IMX8QXP_AUD_ASRC_1_IPG>, - <&clk IMX8QXP_CLK_DUMMY>, + <&clk IMX8QXP_AUD_ASRC_1_IPG>, <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_CLK>, <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK1_CLK>, <&clk IMX8QXP_ACM_AUD_CLK0_SEL>, -- 2.17.1