Re: [RFC][PATCH] ASoC: soc-core: verify Sound Card normality

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Takashi-san

> > I think this is a good direction to at least start to mitigate these
> > problems (which we really should be doing) and hopefully make it easier
> > to do further improvements in future.  There's obviously more places
> > where we should be checking the flag (controls for example) but they can
> > be added later.  One thing I would like to see is instead of setting the
> > flag directly when we see a problem call a function to do it.  That way
> > if we want to improve things in the future we can do that without having
> > to update the callers again.
> 
> BTW, ALSA core has snd_card_disconnect() that does this kind of
> shut-up from user-space.  It was introduced for hot-unplug, but
> basically unbinding is the software hot-unplug.  So, if ASoC won't
> rebind a once-unbound component, you can simply call
> snd_card_disconnect() at the component unbinding time to assure that
> no further user actions can be done.

Thanks. I checked about snd_card_disconnect(), and it will be called
from snd_card_free(). And it will be called from snd_soc_unregister_card()
So, we can call snd_soc_unregister_card() whenever CPU/Codec/Platform
were unregsiterd.

This method also solve random unbind/bind Oops too.
Here, random unbind/bind example is that
expected correct operation is unbind all CPU/Codec/Platfrom/Card,
and then, bind all CPU/Codec/Platfrom/Card again.
(here unbind order can be random)
But this case, we will get Oops if unbind Codec -> bind Codec -> unbind Card.
Using snd_soc_unregister_card() can solve this issue too.

Best regards
---
Kuninori Morimoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux