MLK-25508: dmaengine: imx-sdma: fix kernel dump in audio record
authorRobin Gong <yibin.gong@nxp.com>
Fri, 21 May 2021 17:17:49 +0000 (01:17 +0800)
committerJason Liu <jason.hui.liu@nxp.com>
Fri, 4 Jun 2021 03:45:35 +0000 (11:45 +0800)
commitcbbfb5c197356a71b3e22f6cc5483daa73cd72eb
tree435d25e809d1d00ca12b246721842e344764ace9
parent779ed133e9da4c649d9586f6a88049cf884c081a
MLK-25508: dmaengine: imx-sdma: fix kernel dump in audio record

Check whether audiomix really off or not in runtime resume, if not, do
nothing at HW level including script load to avoid the below crash:

[   40.348730] kernel BUG at mm/vmalloc.c:2064!
[   40.353001] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
[   40.358486] Modules linked in:
[   40.361547] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.35-05035-g08680b128d38-dirty #490
[   40.369984] Hardware name: NXP i.MX8MPlus EVK board (DT)
[   40.375297] pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)
[   40.381310] pc : __get_vm_area_node+0x164/0x188
[   40.385842] lr : vmap+0x84/0x100
[   40.389069] sp : ffff800011bdba80
[   40.392384] x29: ffff800011bdba80 x28: 0000000000000000
[   40.397700] x27: ffff0000c0447548 x26: ffff0000c69b80d4
[   40.403015] x25: 0000000000001000 x24: 006800000000070b
[   40.408333] x23: ffff0000c7399300 x22: 0000000000001000
[   40.413651] x21: 0000000000000010 x20: 0000000000000001
[   40.418972] x19: fffffdfffff01540 x18: 00000000000000c0
[   40.424290] x17: 0000000000000000 x16: 0000000000000000
[   40.429605] x15: fffffdfffff024c0 x14: fffffdfffff024c8
[   40.434921] x13: dead000000000122 x12: 0000000000001000
[   40.440236] x11: ffff00017f3fba08 x10: ffff80016dc2b000
[   40.445552] x9 : ffffffffffffffff x8 : 0000000000010001
[   40.450870] x7 : ffff8000100f51a0 x6 : 0000000000000cc0
[   40.456187] x5 : 00000000ffffffff x4 : fffffdffbfff0000
[   40.461505] x3 : ffff800010000000 x2 : 0000000000000010
[   40.466821] x1 : 0000000000000001 x0 : 0000000000001000
[   40.472137] Call trace:
[   40.474588]  __get_vm_area_node+0x164/0x188
[   40.478775]  dma_common_contiguous_remap+0xa8/0xe8
[   40.483568]  dma_direct_alloc+0x194/0x320
[   40.487581]  dma_alloc_attrs+0x7c/0xe0
[   40.491333]  sdma_load_script+0x64/0x170
[   40.495260]  sdma_runtime_resume+0x1cc/0x1e8
[   40.499533]  pm_generic_runtime_resume+0x28/0x40
[   40.504153]  __genpd_runtime_resume+0x2c/0xa0
[   40.508512]  genpd_runtime_resume+0x88/0x208
[   40.512784]  __rpm_callback+0xd4/0x148
[   40.516535]  rpm_callback+0x20/0x80
[   40.520025]  rpm_resume+0x39c/0x580
[   40.523515]  __pm_runtime_resume+0x38/0x80
[   40.527614]  sdma_int_handler+0x40/0x380
[   40.531539]  __handle_irq_event_percpu+0x4c/0x160
[   40.536243]  handle_irq_event_percpu+0x30/0x88
[   40.540686]  handle_irq_event+0x44/0xd8
[   40.544525]  handle_fasteoi_irq+0xb4/0x160
[   40.548621]  generic_handle_irq+0x2c/0x40
[   40.552632]  __handle_domain_irq+0x60/0xb8
[   40.556730]  gic_handle_irq+0x54/0x118
[   40.560482]  el1_irq+0xc0/0x180
[   40.563626]  cpuidle_enter_state+0x134/0x2e8
[   40.567898]  cpuidle_enter+0x34/0x48
[   40.571476]  call_cpuidle+0x18/0x38
[   40.574963]  do_idle+0x1f4/0x258
[   40.578190]  cpu_startup_entry+0x20/0x68
[   40.582116]  rest_init+0xd4/0xe0
[   40.585347]  arch_call_rest_init+0xc/0x14
[   40.589359]  start_kernel+0x470/0x4a4
[   40.593027] Code: aa1403e0 a94153f3 a8c67bfd d65f03c0 (d4210000)
[   40.599126] ---[ end trace 1207e0499c4741de ]---

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Jason Liu <jason.hui.liu@nxp.com>
drivers/dma/imx-sdma.c