[alsa-devel] [PATCH 0/4] ASoC: rsnd: fixup interrupt / spin lock issue

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Wed May 20 05:45:42 CEST 2015


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(-)


More information about the Alsa-devel mailing list