On 07/29/2013 08:07 AM, Mark Brown wrote:
On Mon, Jul 29, 2013 at 11:04:46AM +0800, Bard Liao wrote:
The mute/unmute control is written in rt5640_snd_controls[] now. It allows user to unmute speaker or headphone before dapm power on the related power. And it will bring a pop noise. So I prefer to do the unmute/mute step in the widget event. Is that ok?
If you need to do that you should really still present the mute control to the user; store the current state in a variable in the private data so that the user always sees the control and then only write the value out while the widget is powered. Mute is expected to be fast and some userspaces like to be able to mute individual outputs.
Ideally the core would be able to do this.
Yea, so the stuff I was working on while I stumbled upon this was more or less that. Support for letting DAPM mute controls, which are also exposed to userspace, if necessary in order to avoid clicks and pops. Once muted by DAPM userspace will only see a cached value of the controls state and once DAPM unmutes the control the userspace state will be restored.
- Lars