On Aug 4 2016 21:27, Takashi Iwai wrote: > On Thu, 04 Aug 2016 14:12:09 +0200, > Takashi Sakamoto wrote: >> >> On Aug 4 2016 19:28, Mark Brown wrote: >>> On Thu, Aug 04, 2016 at 12:17:57PM +0900, Takashi Sakamoto wrote: >>>> On Jul 30 2016 07:08, Mark Brown wrote: >>> >>>>> The card should be deinstantiated and reinstantiated whenever a >>>>> component driver unbinds and rebinds (respectively). You'd need to >>>>> completely deregister the card to change the list of things it's >>>>> expecting currently. >>> >>>> In a point of application interfaces, I guess that current implementation of >>>> ALSA soc part includes a bug that it's possible to unload codec or component >>>> modules when any ALSA character devices are opened. The framework has no >>>> codes to manage reference counting of character devices or loaded codecs, >>>> components. >>> >>> Yes, exactly - we don't cope very well with that situation and we really >>> ought to but since it's hard to trigger without trying in practice it's >>> never been a priority. >> >> Ugly... completely ugly idea for user space applications and operating >> system... It's better for developers for ALSA soc part to pay enough >> attention not only to their hardwares but also to application interfaces. >> >> Please assume that a loaded module for SoC's sound interface which >> supports Jack detection, and pulseaudio runs on the system. Then, >> typically, the process listen to ALSA ctrl character device for Jack >> detection. >> >> In this case, when modules for codec or component are unloaded, what >> happends? > > You can't unload. The module unload is already protected by the > proper module refcounting. Hm. For my information, could you please show call graph to increment the reference counter of codec/component modules when modules for SoC's sound interfaces refer to them? Regards Takashi Sakamoto