Hi Takasi-san > > The lack of stop sync is a known problem in the ALSA PCM > > infrastructure. The standard idiom is to do sync at both prepare > > and hw_free (or close) callbacks. > > Thanks. > This path main sync is for clk ON/OFF > > Hm, but it's managed as PCM trigger, no? > How can the rsnd_io_is_working() return true after PCM streams are stopped? It is based on PCM trigger, thus, it returns false if PCM streams are stopped. This driver calls clk_get() when PCM started, and clk_put() when stopped. And it calles clk_enable() on .probe, and clk_disable() on .remove. My problem is that user unbinds driver during Sound playing, this means clk_get() is called, but clk_put() is not called. Then, .remove will call clk_disable(), but clk_put() is not yet called. Then, kernel indicates clk user count mismatch. This patch calls missing PCM stop (= clk_put()) position function if needed. Is this clear answer for you ? _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel