[alsa-devel] [PATCH] ASoC: rt5640: change widgetsequencefordepop

Bard Liao bardliao at realtek.com
Tue Aug 6 11:13:35 CEST 2013


> > 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?

Yes, the related code is as below.
static const struct snd_kcontrol_new spk_l_enable_control =
	SOC_DAPM_SINGLE_AUTODISABLE("Switch", RT5640_SPK_VOL,
		RT5640_L_MUTE_SFT, 1, 1);

static const struct snd_kcontrol_new spk_r_enable_control =
	SOC_DAPM_SINGLE_AUTODISABLE("Switch", RT5640_SPK_VOL,
		RT5640_R_MUTE_SFT, 1, 1);

	SND_SOC_DAPM_SWITCH("Speaker L Playback", SND_SOC_NOPM, 0, 0,
			&spk_l_enable_control),
	SND_SOC_DAPM_SWITCH("Speaker R Playback", SND_SOC_NOPM, 0, 0,
			&spk_r_enable_control),

I tried set SND_SOC_DAPM_SWITCH invert flag, but it comes the same result.
I will do some more experiments about it.

> 
> - Lars
> 
> 
> ------Please consider the environment before printing this e-mail.


More information about the Alsa-devel mailing list