diff options
author | Fabio Estevam | 2015-01-14 14:56:22 +0100 |
---|---|---|
committer | Mark Brown | 2015-01-14 18:13:46 +0100 |
commit | 0984f3410089a773e408a0a76f719df109436cf1 (patch) | |
tree | 947a0e266e69659b729770b9e1c003f0759acf27 /sound/soc/codecs/pcm512x.c | |
parent | Linux 3.19-rc1 (diff) | |
download | kernel-qcow2-linux-0984f3410089a773e408a0a76f719df109436cf1.tar.gz kernel-qcow2-linux-0984f3410089a773e408a0a76f719df109436cf1.tar.xz kernel-qcow2-linux-0984f3410089a773e408a0a76f719df109436cf1.zip |
ASoC: fsl: imx-wm8962: Set the card owner field
The following crash happens when trying to unload the snd_soc_imx_wm8962 module
while playback is active:
[ 208.666868] Unable to handle kernel paging request at virtc
[ 208.674110] pgd = 80004000
[ 208.676867] [7f06541c] *pgd=4c334811, *pte=00000000, *ppte=00000000
[ 208.683211] Internal error: Oops: 80000007 [#1] SMP ARM
[ 208.688445] Modules linked in: snd_soc_wm8962 snd_soc_fsl_ssi snd_soc_imx_audmux imx_pcm_fiq evbug]
...
In order to avoid such problem, fill the card owner field as suggested by
Lars-Peter Clausen:
"But looking at the source it seems that this is a core feature of ALSA and at
least for the card module itself it will do the ref-counting when a stream is
started/stopped. And we even support setting the owner of a card in ASoC.
It's just that pretty much no ASoC card driver bothers to set the owner field
in the snd_soc_card struct. So this particular problem can be fixed by updating
the imx-wm8962 driver to set the owner field."
By doing as suggested, we no longer see the crash when attempting to unload the
snd_soc_imx_wm8962 module while playback is active:
$ modprobe -r snd_soc_imx_wm8962
modprobe: can't unload module snd_soc_imx_wm8962: Resource temporarily
unavailable
Reported-by: Jiada Wang <jiada_wang@mentor.com>
Suggested-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/pcm512x.c')
0 files changed, 0 insertions, 0 deletions