Hi Mark, Vinod Cc Laurent
These patches fixup unknown interrupt issue which was reported by Hiep-san in v4.1-rcX kernel. It was not happened in v4.0 because ARM platform side couldn't use DMA transfer.
--------- Unable to handle kernel NULL pointer dereference at virtual address 00000048 pgd = edfac000 [00000048] *pgd=6e0f0831, *pte=00000000, *ppte=00000000 Internal error: Oops: 17 [#1] SMP ARM CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4 Hardware name: Generic R8A7790 (Flattened Device Tree) ... --------
Renesas sound driver had 2 issues. [1] spin lock was unlocked un-expected timing [2] HW restart (when error timing) is called without spin lock
In our environment, it was difficult to reproduce this error, because it happens in very rare timing. But I noticed it is easy to reproduce it if I added this setting.
[Kernel hacking] - [Lock Debugging] - all ON
And we decided this error has gone by these tests.
Test1: reproduce error
1. start / stop sound playback in 100 times 2. count error 3. test above in 10 sets
result: 100% error happen. In average, this error happens once during 5 playbacks.
Test2: apply these fixup patces, and retry Test1
result: 0 error happen.
Kuninori Morimoto (4): 1) dmaengine: rcar-dmac: fixup spinlock in rcar-dmac 2) ASoC: rsnd: indicate unknown HW start 3) ASoC: rsnd: add rsnd_dai_stream_quit() 4) ASoC: rsnd: spin lock for interrupt handler
drivers/dma/sh/rcar-dmac.c | 55 +++++++++++++++++++++++++++++++------------------------ sound/soc/sh/rcar/core.c | 25 ++++++++++++++++++------- sound/soc/sh/rcar/rsnd.h | 3 +-- sound/soc/sh/rcar/src.c | 11 ++++++++--- sound/soc/sh/rcar/ssi.c | 18 ++++++++++++++---- 5 files changed, 72 insertions(+), 40 deletions(-)