[alsa-devel] [PATCH] ASoC: Add GPIO support for jack reporting interface
Lopez Cruz, Misael
x0052729 at ti.com
Tue Mar 3 19:54:31 CET 2009
> > > This error path doesn't look good. It seems leaking /
> > > keeping some resources.
> > Changed to:
> > int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
> > struct snd_soc_jack_gpio *gpios)
> > {
> > int i, ret;
> >
> > for (i = 0; i < count; i++) {
> > if (!gpio_is_valid(gpios[i].gpio)) {
> > printk(KERN_ERR "Invalid gpio %d\n",
> > gpios[i].gpio);
> > return -EINVAL;
> > }
> This still leaks GPIOs and interrupts if one of these tests fails on a
> GPIO after the first.
I was thinking more in that machine drivers could handle the returned
error, for example, calling snd_soc_jack_free_gpios.
ret = snd_soc_jack_add_gpios(jack, ARRAY_SIZE(my_array), my_array);
if (ret) {
snd_soc_jack_free_gpios(jack, ARRAY_SIZE(my_array), my_array);
return ret;
}
But if snd_soc_jack_add_gpios() has to take care of it, then I'll
add that.
More information about the Alsa-devel
mailing list