[alsa-devel] [PATCH] ASoC: dapm: Fix snd_soc_dapm_put_volsw() connect

Benoît Thébaudeau benoit.thebaudeau at advansee.com
Fri Jun 29 21:09:49 CEST 2012


On Fri, Jun 29, 2012 at 06:22:28PM +0200, Takashi Iwai wrote:
> At Fri, 29 Jun 2012 18:09:35 +0200 (CEST),
> Benoît Thébaudeau wrote:
> > 
> > On Fri, Jun 29, 2012 at 05:44:41PM +0200, Takashi Iwai wrote:
> > > BTW, looking at snd_soc_dapm_vol_getsw(), I found that
> > > snd_soc_dapm_vol_putsw() doesn't handle a stereo case.
> > > This needs a fix, too...
> > 
> > I saw that too. Is it the stereo case that should be added to put
> > or removed
> > from get, i.e. is it possible to handle a stereo case with only one
> > connect
> > flag?
> 
> I would assume that connect should be up when either left or right is
> on.  A stereo widget doesn't mean multiple connections.

I have started to look into that:
 - Give a choice between reg and shift stereo for snd_soc_dapm_get_volsw(), like
   in snd_soc_get_volsw().
 - Add stereo to the first case of dapm_set_path_status().
 - Add stereo to dapm_widget_update() and struct snd_soc_dapm_update.
 - Then comes snd_soc_dapm_get_volsw(): What should we do with
   "widget->value = val;"? Add an rvalue to struct snd_soc_dapm_widget? This
   field does not seem to be read anywhere except for enums. There is also
   saved_value and other fields that do not seem to be used anywhere.

Regards,
Benoît


More information about the Alsa-devel mailing list