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