linux/sound/soc/sh
Kuninori Morimoto 2ce1b21cb3
ASoC: rsnd: fixup DMAEngine API
commit d5bb69dc54 ("ASoC: sh: rcar: dma: : use proper DMAENGINE
API for termination") updated DMAEngine API _all() to _sync(),
but it should be _async().
_all() and _async() are almost same, the difference is only return
error code. _sync() will call dmaengine_synchronize() and will be
kernel panic.
This patch is needed for v5.15 or later.

[   27.293264] BUG: scheduling while atomic: irq/130-ec70000/131/0x00000003
[   27.300084] 2 locks held by irq/130-ec70000/131:
[   27.304743]  #0: ffff0004c274d908 (&group->lock){....}-{2:2}, at: _snd_pcm_stream_lock_irqsave+0x48/0x54
[   27.314344]  #1: ffff0004c1788c60 (&priv->lock#2){....}-{2:2}, at: rsnd_soc_dai_trigger+0x70/0x7bc
[   27.323409] irq event stamp: 206
[   27.326664] hardirqs last  enabled at (205): [<ffff80001082de50>] _raw_spin_unlock_irq+0x50/0xa0
[   27.335529] hardirqs last disabled at (206): [<ffff80001082d9e4>] _raw_spin_lock_irqsave+0xc4/0xd0
[   27.344564] softirqs last  enabled at (0): [<ffff800010037324>] copy_process+0x644/0x1b10
[   27.352819] softirqs last disabled at (0): [<0000000000000000>] 0x0
[   27.359142] CPU: 0 PID: 131 Comm: irq/130-ec70000 Not tainted 5.14.0-rc1+ #918
[   27.366429] Hardware name: Renesas H3ULCB Kingfisher board based on r8a77950 (DT)
[   27.373975] Call trace:
[   27.376442]  dump_backtrace+0x0/0x1b4
[   27.380141]  show_stack+0x24/0x30
[   27.383488]  dump_stack_lvl+0x8c/0xb8
[   27.387184]  dump_stack+0x18/0x34
[   27.390528]  __schedule_bug+0x8c/0x9c
[   27.394224]  __schedule+0x790/0x8dc
[   27.397746]  schedule+0x7c/0x110
[   27.401003]  synchronize_irq+0x94/0xd0
[   27.404786]  rcar_dmac_device_synchronize+0x20/0x2c
[   27.409710]  rsnd_dmaen_stop+0x50/0x64
[   27.413495]  rsnd_soc_dai_trigger+0x554/0x7bc
[   27.417890]  snd_soc_pcm_dai_trigger+0xe8/0x264

Cc: <stable@kernel.org>
Fixes: commit d5bb69dc54 ("ASoC: sh: rcar: dma: : use proper DMAENGINE API for termination")
Link: https://lore.kernel.org/r/TY2PR01MB3692889E1A7476C4322CC296D8AE9@TY2PR01MB3692.jpnprd01.prod.outlook.com
Reported-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87mtmfz36o.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2021-11-12 21:25:19 +00:00
..
rcar ASoC: rsnd: fixup DMAEngine API 2021-11-12 21:25:19 +00:00
dma-sh7760.c ASoC: sh: dma-sh7760: remove unused variable 2021-03-10 13:06:59 +00:00
fsi.c ASoC: fsi: fix spelling mistake 2021-06-18 12:55:19 +01:00
hac.c ASoC: soc-core: remove bus_control 2020-01-21 17:07:08 +00:00
Kconfig ASoC: sh: Add RZ/G2L SSIF-2 driver 2021-08-13 13:17:16 +01:00
Makefile ASoC: sh: Add RZ/G2L SSIF-2 driver 2021-08-13 13:17:16 +01:00
migor.c ASoC: sh: use asoc_substream_to_rtd() 2020-07-23 19:07:25 +01:00
rz-ssi.c ASoC: sh: rz-ssi: Improve error handling in rz_ssi_dma_request function 2021-08-19 18:21:22 +01:00
sh7760-ac97.c ASoC: sh: sh7760-ac97: use modern dai_link style 2019-06-06 21:37:35 +01:00
siu_dai.c ASoC: siu: convert to SPDX identifiers 2018-06-18 12:16:42 +01:00
siu_pcm.c ASoC: sh: siu_pcm: remove unused variable 2021-03-10 13:07:04 +00:00
siu.h ASoC: siu: Fix build error by a wrong const prefix 2021-01-27 12:35:18 +00:00
ssi.c ASoC: ssi: don't use discriminatory terms for debug log 2020-07-14 16:38:24 +01:00