On Wed, Jan 14, 2015 at 10:57 AM, Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:I think by set owner field in imx_wm8962 machine driver can fix the crash I saw on sabreSD board,
My personal opinion on this is that disallowing module removal while aThanks, Lars_Peter. This fixes the issue:
driver registered by the module when is in use, while there is no technical
reason to do so, is a anti-feature. Whether in ALSA or elsewhere.
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.
root@freescale /$ modprobe -r snd_soc_imx_wm8962
modprobe: can't unload module snd_soc_imx_wm8962: Resource temporarily
unavailable
Will send a patch with your suggestion soon.