1
0
Fork 0

clk: imx8qxp-acm: fix boot crash on mx8qm board

Need special care to handl SAI4&5 differently on mx8qm.
Remove it temporarily.

[    2.694908] Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
[    2.702348] Modules linked in:
[    2.705394] CPU: 0 PID: 49 Comm: kworker/0:1 Not tainted 5.1.0-rc3-next-20190405-00675-g19c2025-dirty #131
[    2.715030] Hardware name: Freescale i.MX8QM MEK (DT)
[    2.720084] Workqueue: events deferred_probe_work_func
[    2.725197] pstate: 20000005 (nzCv daif -PAN -UAO)
[    2.729980] pc : clk_mux_get_parent+0xc/0x44
[    2.734235] lr : __clk_init_parent+0x30/0x60
[    2.738484] sp : ffff0000124d39d0
[    2.741786] x29: ffff0000124d39d0 x28: ffff000011161e48
[    2.747086] x27: 0000000000000000 x26: 0000000000000000
[    2.752384] x25: ffff000011161e08 x24: ffffffffffffffef
[    2.757684] x23: ffff8008f7129d00 x22: ffff00001115bae0
[    2.762983] x21: ffff8008f712a400 x20: ffff000010d9b780
[    2.768282] x19: ffff8008f712a400 x18: 000000000006fffc
[    2.773582] x17: 0000000000000000 x16: ffff0000139d0000
[    2.778881] x15: ffff7e0023e2e940 x14: ffff8008ff3eefa0
[    2.784180] x13: 0000000000000000 x12: 00000000000001c2
[    2.789480] x11: 0000000000000003 x10: 0101010101010101
[    2.794779] x9 : 0000000000000000 x8 : 7f7f7f7f7f7f7f7f
[    2.800079] x7 : 626f6b5e33686072 x6 : 1202046b2c0d1957
[    2.805378] x5 : 57190d2c6b040212 x4 : 0000000000000000
[    2.810677] x3 : 0b1b6afb9b0b49a0 x2 : 0000000000000004
[    2.815977] x1 : ffff000013940000 x0 : ffff8008f7129d00
[    2.821281] Process kworker/0:1 (pid: 49, stack limit = 0x(____ptrval____))
[    2.828229] Call trace:
[    2.830665]  clk_mux_get_parent+0xc/0x44
[    2.834570]  __clk_init_parent+0x30/0x60
[    2.838481]  clk_register+0x3ac/0x6a8
[    2.842127]  clk_hw_register+0xc/0x1c
[    2.845777]  clk_hw_register_mux_table+0x104/0x190
[    2.850554]  clk_register_mux+0x30/0x4c
[    2.854385]  imx8qxp_acm_clk_probe+0x6e8/0x838
[    2.858811]  platform_drv_probe+0x4c/0xb0
[    2.862805]  really_probe+0x1f8/0x2c8
[    2.866456]  driver_probe_device+0x58/0xfc
[    2.870537]  __device_attach_driver+0x90/0xac
[    2.874883]  bus_for_each_drv+0x68/0xbc
[    2.878703]  __device_attach+0xe0/0x138
[    2.882525]  device_initial_probe+0x10/0x18
[    2.886695]  bus_probe_device+0x90/0x98
[    2.890518]  deferred_probe_work_func+0x70/0xa4
[    2.895043]  process_one_work+0x13c/0x2b4
[    2.899032]  worker_thread+0x35c/0x3e4
[    2.902772]  kthread+0xf8/0x124
[    2.905900]  ret_from_fork+0x10/0x18
[    2.909462] Code: 17fffff8 a9bf7bfd 910003fd f9400c01 (b9400021)
[    2.915543] ---[ end trace 5a27cc1a041a3c2f ]---

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
5.4-rM2-2.2.x-imx-squashed
Dong Aisheng 2019-04-08 15:11:58 +08:00
parent 11f00aae28
commit 0d15950c53
1 changed files with 2 additions and 2 deletions

View File

@ -153,8 +153,8 @@ static int imx8qxp_acm_clk_probe(struct platform_device *pdev)
clks[IMX_ADMA_ACM_SAI1_MCLK_SEL] = imx_clk_mux("acm_sai1_mclk_sel", base+0x0F0000, 0, 2, sai_mclk_sels, ARRAY_SIZE(sai_mclk_sels));
clks[IMX_ADMA_ACM_SAI2_MCLK_SEL] = imx_clk_mux("acm_sai2_mclk_sel", base+0x100000, 0, 2, sai_mclk_sels, ARRAY_SIZE(sai_mclk_sels));
clks[IMX_ADMA_ACM_SAI3_MCLK_SEL] = imx_clk_mux("acm_sai3_mclk_sel", base+0x110000, 0, 2, sai_mclk_sels, ARRAY_SIZE(sai_mclk_sels));
clks[IMX_ADMA_ACM_SAI4_MCLK_SEL] = imx_clk_mux("acm_sai4_mclk_sel", base+0x140000, 0, 2, sai_mclk_sels, ARRAY_SIZE(sai_mclk_sels));
clks[IMX_ADMA_ACM_SAI5_MCLK_SEL] = imx_clk_mux("acm_sai5_mclk_sel", base+0x150000, 0, 2, sai_mclk_sels, ARRAY_SIZE(sai_mclk_sels));
// clks[IMX_ADMA_ACM_SAI4_MCLK_SEL] = imx_clk_mux("acm_sai4_mclk_sel", base+0x140000, 0, 2, sai_mclk_sels, ARRAY_SIZE(sai_mclk_sels));
// clks[IMX_ADMA_ACM_SAI5_MCLK_SEL] = imx_clk_mux("acm_sai5_mclk_sel", base+0x150000, 0, 2, sai_mclk_sels, ARRAY_SIZE(sai_mclk_sels));
clks[IMX_ADMA_ACM_SPDIF0_TX_CLK_SEL] = imx_clk_mux("acm_spdif0_mclk_sel", base+0x1A0000, 0, 2, spdif_mclk_sels, ARRAY_SIZE(spdif_mclk_sels));
clks[IMX_ADMA_ACM_MQS_TX_CLK_SEL] = imx_clk_mux("acm_mqs_mclk_sel", base+0x1C0000, 0, 2, mqs_mclk_sels, ARRAY_SIZE(mqs_mclk_sels));