At Sat, 15 Dec 2007 14:13:41 -0500, Dave Dillow wrote: > > When using alsactl to save or restore the card settings, it currently > skips over controls that don't have the appropriate read/write > permissions. It should also skip over inactive controls, otherwise it > will get an error when it tries to access that control, and will fail to > save the card state (or fully restore it.) > --- > I noticed this while adding surround support to SiS7019. I think the > problem affects other cards, as I am following the pattern used by > trident, rme*, cmipci, emu10k1 and others. > > This is only for discussion, since I've not tested this (nor even > compiled it) but I think it will fix the issue. This is obviously a right fix. I applied it to HG tree now. Thanks. Takashi > > diff -r d3ba62cd2776 alsactl/state.c > --- a/alsactl/state.c Fri Dec 14 15:29:51 2007 +0100 > +++ b/alsactl/state.c Sat Dec 15 14:06:35 2007 -0500 > @@ -250,7 +250,8 @@ static int get_control(snd_ctl_t *handle > return err; > } > > - if (!snd_ctl_elem_info_is_readable(info)) > + if (snd_ctl_elem_info_is_inactive(info) || > + !snd_ctl_elem_info_is_readable(info)) > return 0; > snd_ctl_elem_value_set_id(ctl, id); > err = snd_ctl_elem_read(handle, ctl); > @@ -1306,7 +1307,8 @@ static int set_control(snd_ctl_t *handle > } > } > > - if (!snd_ctl_elem_info_is_writable(info)) > + if (snd_ctl_elem_info_is_inactive(info) || > + !snd_ctl_elem_info_is_writable(info)) > return 0; > snd_ctl_elem_value_set_numid(ctl, numid1); > > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@xxxxxxxxxxxxxxxx > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel