On Mon, Mar 02, 2009 at 07:05:28PM -0600, Lopez Cruz, Misael wrote: This is much better than last time, thanks! Some issues do remain, though (as well as those that Takashi mentioned): > +int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, > + struct snd_soc_jack_gpio *gpios); > +void snd_soc_jack_free_gpios(struct snd_soc_jack *jack); snd_soc_jack_free_gpios() shouild take the same arguments as the add... > struct snd_soc_jack { > struct snd_jack *jack; > struct snd_soc_card *card; > struct list_head pins; > + struct snd_soc_jack_gpio *gpios; > + int gpio_count; > int status; > }; ...so (as previously discussed) you don't have this. The jack shouldn't need this information and it's only used to free things at the minute. Consider how this will scale: if the jack detection method for every codec were to add back pointers to the snd_soc_jack structure then you'd rapidly find that the bulk of the structure is taken up with these back pointers. > + enable = gpio_get_value(gpio->gpio); > + if (gpio->invert) > + enable != enable; I think you mean enable = !enable here (I'm surprised the compiler doesn't warn about this). _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel