On 08/06/2013 10:07 AM, Bard Liao wrote:
-----Original Message----- From: Lars-Peter Clausen [mailto:lars@metafoo.de] Sent: Tuesday, August 06, 2013 1:21 AM To: Mark Brown Cc: Bard Liao; Oder Chiou; alsa-devel@alsa-project.org; swarren@nvidia.com; swarren@wwwdotorg.org; lgirdwood@gmail.com; Flove Subject: Re: [alsa-devel] [PATCH] ASoC: rt5640: change widget sequence fordepop
On 08/05/2013 04:48 PM, Mark Brown wrote:
On Mon, Aug 05, 2013 at 12:19:03PM +0800, bardliao@realtek.com wrote:
From: Bard Liao bardliao@realtek.com
Add mute/unmute control in widget event and modify the power on/off
sequence to avoid pop noise.
This looks like you should be using Lars-Peter's patch for controls that are disabled while a widget isn't powered - as far as I can tell from a quick read through all this does is keep the speaker/headphone muted while the outputs are powered down.
The driver is using stereo controls though. So either support for stereo controls needs to be added to DAPM (which shouldn't be too hard) or the control needs to be split into two mono controls.
- Lars
I think I need to use SND_SOC_DAPM_SWITCH with SOC_DAPM_SINGLE_AUTODISABLE for this control. Am I right? I am trying to do that, but meet a problem. If I set speaker switch unmute before playing music, dapm will mute it automatically in power on sequence. The only way I can unmute speaker is set speaker switch unmute while playing music.
DAPM should unmute the switch on power up and mute it on power down. The Speaker Channel Switch control has the invert flag set did you also set the invert flag for the new autodisable control?
- Lars